我刚使用此代码只保留图像中的红色:
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);
这是我的一组图片,只有红色:
现在我试图改变它,以便取出红色,如下:
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);
但由于某种原因,红色停留在图像中。有关为何发生这种情况的任何想法?
这里的图像应该没有第一张图片中的红色:
它应该与其他图像正好相反,对吗?我不确定为什么它没有摆脱红色。