如何从RGB图像中提取特定的颜色?

48个视图(过去30天)
SUKUMAR NAGINENI
SUKUMAR NAGINENI 于2021年6月3日16:07
评论道: SUKUMAR NAGINENI于2021年6月5日5:16
亲爱的所有,
我想从RGB图像中提取特定的颜色。如果特定的颜色存在于图像中,我希望用零像素强度替换它。在下面的图中,箭头所指的是浅红色;这里,我想从图像中提取出这种特殊的浅红色。如果它出现在图像中,我想用特定颜色的零强度级别替换它。
如何从图像中提取出特定的颜色?

答案(2)

Sulaymon Eshkabilov.
Sulaymon Eshkabilov. 2021年6月4日5:38
(1)图像读取:imread('traffic.png')
(2)选择并找出一种红色的像素值范围,例如:
我= imread (“traffic.png”);
pxy =仙子(i);%一旦选择足够数量的像素点,按ENTER从键盘
R = (PXY (: 1));% g = (pxy (:,2));B = (PXY (:, 3));如果对绿色或蓝色感兴趣
Rm = min (R);%通用= min (G);Bm = min (B);
(3)使用逻辑索引,例如:
Red = I(::,1);
绿色=我(::2);
蓝色=我(::3);
红色(红色> = Rm) = 0;%为红色层
绿色(红色> = RM)= 0;绿色层的%
蓝色(红色> = Rm) = 0;%为蓝色层
NEW_Im(:,: 1) =红;
NEW_Im(:: 2) =绿色;
NEW_Im(:,:, 3) =蓝色;
宋惠乔imshow (NEW_Im)

沃尔特·罗伯森
沃尔特·罗伯森 2021年6月5日1:45
编辑:沃尔特·罗伯森 2021年6月5日1:45
不完美,但它会给你一个起点。
文件名=“//www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/641315/f00167.png”
rgb = imread(文件名);
HSV = RGB2HSV(RGB);
mask1 = HSV(:,:,1)<0.2;
mask2 = HSV(:,:,2)> 0.3&HSV(:,:,2)<0.7;
drawtext (HSV(:,:,3) and HSV(:,:,3) < 0.6 and HSV(:,:,3) < 0.6;
面具= mask1和mask2和mask3;
bw = bwareafilt(面具,[30 inf]);
filtered_rgb = RGB。* UINT8(BW);
imshow (filtered_RGB)
5个评论

登录发表评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!

被某某人翻译