MATLAB - 从图像中提取红色

时间:2013-12-03 20:14:33

标签: matlab image-processing colors computer-vision extraction

为什么以下代码提取的组件与图像的红色通道类似?

diff_im = imsubtract(data(:,:,1), rgb2gray(data));

1 个答案:

答案 0 :(得分:3)

只有看起来就像红色通道一样。您的代码从红色通道(rgb2gray(data))中提取亮度(data(:,:,1)),这将提供一种标准化的红色通道,但负值被截断为零。

如果data是无符号整数(可能是uint8),则减法不能给出负值,因此任何没有突出红色分量的像素都将设置为零。您可以通过减去签名数据类型并比较结果来查看这些像素的地图:

redMap = diff_im > (double(data(:,:,1))-double(rgb2gray(data)))