matlab 图像矩阵条件提取方法用matlab如何实现: 已知一个图像矩阵A和某一点的颜色(R0,G0,B0) 怎样把A中 R,G,B分量均在R0,G0,B0的 0.80~1.20倍之间的像素提取到矩阵B中?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 01:21:33
matlab 图像矩阵条件提取方法用matlab如何实现: 已知一个图像矩阵A和某一点的颜色(R0,G0,B0) 怎样把A中 R,G,B分量均在R0,G0,B0的 0.80~1.20倍之间的像素提取到矩阵B中?
matlab 图像矩阵条件提取方法
用matlab如何实现:
已知一个图像矩阵A和某一点的颜色(R0,G0,B0) 怎样把A中 R,G,B分量均在R0,G0,B0的 0.80~1.20倍之间的像素提取到矩阵B中?
matlab 图像矩阵条件提取方法用matlab如何实现: 已知一个图像矩阵A和某一点的颜色(R0,G0,B0) 怎样把A中 R,G,B分量均在R0,G0,B0的 0.80~1.20倍之间的像素提取到矩阵B中?
在处理矩阵A时要先确保A已转为double型.显示B时还要转换为uint8型.我举一个例子吧,我先读取一个名为111.bmp的图像
I=imread('C:\Users\DELL\Desktop\111.bmp');
A=double(I); %转为double型
R0=2; %比方说已知的R0,G0,B0分别为2,59,182.
G0=59;
B0=182;
[M,N,H]=size(A); %获取A的大小.
B=zeros(M,N,H); %新建一个同样大小零矩阵B.
for n=1:N
for m=1:M
r=A(m,n,1); %将此像素的R分量赋给r.
g=A(m,n,2); %将此像素的G分量赋给g.
b=A(m,n,3); %将此像素的B分量赋给b.
if (r>=0.8*R0&&r<=1.2*R0)&&(g>=0.8*G0&&g<=1.2*G0)&&(b>=0.8*B0&&b<=1.2*B0)
B(m,n,1)=A(m,n,1); %判断完之后将A中此像素的各分量赋给B.
B(m,n,2)=A(m,n,2);
B(m,n,3)=A(m,n,3);
end;
end;
end;
NI=uint8(B); %将B转为uint8型,并赋给NI.
imshow(I); %显示原图像
imshow(NI); %显示处理后的图像
图像位处理前与处理后的图片.