如何使用Matlab从图像中取出红色?

时间:2014-11-16 17:56:56

标签: image matlab colors

我刚使用此代码只保留图像中的红色:

hsvImage = rgb2hsv(imread(filename));
hPlane = 360.*hsvImage(:,:,1);
sPlane = hsvImage(:,:,2);
nonRedIndex = (hPlane > 25) & (hPlane < 340);
sPlane(nonRedIndex) = 0;
hsvImage(:,:,2) = sPlane;
rgbImage = hsv2rgb(hsvImage);

这是我的一组图片,只有红色:

Only red

现在我试图改变它,以便取出红色,如下:

hsvImage = rgb2hsv(imread(filename));
hPlane = 360.*hsvImage(:,:,1);
sPlane = hsvImage(:,:,2);
nonRedIndex = (hPlane < 25) & (hPlane > 340);
sPlane(nonRedIndex) = 0;
hsvImage(:,:,2) = sPlane;
rgbImage = hsv2rgb(hsvImage);

但由于某种原因,红色停留在图像中。有关为何发生这种情况的任何想法?

这里的图像应该没有第一张图片中的红色:

No Red

它应该与其他图像正好相反,对吗?我不确定为什么它没有摆脱红色。

0 个答案:

没有答案