【问题标题】:How to keep a color in an image while discarding others in matlab?如何在matlab中丢弃其他颜色的同时保留图像中的颜色?
【发布时间】:2015-03-29 00:08:44
【问题描述】:

我想在图像中保留特定颜色并丢弃所有其他颜色。 当我尝试保持红色时,程序可以工作,但是当我尝试使用类似的绿色方法时,我什么也得不到。 任何人都可以帮忙。 下面是我的程序。由于某些声誉问题,无法发布图片。

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);

【问题讨论】:

  • 谷歌搜索matlab keep one color返回什么?
  • 这是一个接近重复的内容,可能会对您有所帮助 - 可能不够接近,无法将其作为完全重复来关闭。 stackoverflow.com/questions/4063965/…

标签: image matlab colors


【解决方案1】:

问题上线了:

nongreen = (h > 210) & (h < 30);

h 的任何值都不能满足。即您正在寻找大于 210 且小于 30 的 h。

由于您的色调角度范围在 0-360 之间,您可以改为 OR:

nongreen = (h > 210) | (h < 30);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 2022-07-30
    • 1970-01-01
    相关资源
    最近更新 更多