使用阈值将亮像素更改为红色

时间:2014-10-26 14:45:18

标签: matlab image-processing

我想用第二种颜色替换图像中的第一种颜色,但我不知道该怎么做。任何帮助,将不胜感激!函数原型定义如下:

1 个答案:

答案 0 :(得分:0)

如果您正在寻找分步代码,请尝试使用

A = imread('peppers.png');
thresh = 200;
Ar = A(:,:,1);
Ag = A(:,:,2);
Ab = A(:,:,3);
logmap = zeros([size(A,1),size(A,2)]);
logmap = (Ar > thresh).* (Ab > thresh).* (Ag > thresh);
Ar(logmap == 1) = 255;
Ag(logmap == 1) = 0;
Ab(logmap == 1) = 0;
A = cat(3 ,Ar,Ag,Ab);
imshow(A);

logmap是一个逻辑矩阵(表示只能有01), logmap = (Ar > thresh).* (Ab > thresh).* (Ag > thresh);表示其R,B和G大于thresh的所有像素都将设置为1。然后,对于这些像素,我们将red设置为255 and other colors to 0`。