我想在图像中保留特定颜色并丢弃所有其他颜色。 当我试图保持红色时,程序可以工作,但是当我尝试类似的绿色方法时,我什么也得不到。 谁能帮忙。 以下是我的计划。由于某些声誉问题,我无法发布图片。
a = imread('image.jpg');
b = rgb2hsv(a);
h = 360 .* b(:,:,1);
s = b(:,:,2);
v = b(:,:,3);
nonred = (h > 20) & (h < 340);
v(nonred)=0;
b(:,:,3)=v;
c=hsv2rgb(b);
以下是绿色代码
a = imread('image.jpg.');
b = rgb2hsv(a);
h = 360 .* b(:,:,1);
s = b(:,:,2);
v = b(:,:,3);
nongreen = (h > 210) & (h < 30);
v(nongreen) = 0;
b(:,:,3)=v;
c=hsv2rgb(b);
答案 0 :(得分:3)
问题在于:
nongreen = (h > 210) & (h < 30);
其中没有h值可以满足。即你正在寻找大于210且小于30的h。
由于你的色调角度范围在0-360之间,你可以改为OR:
nongreen = (h > 210) | (h < 30);