为什么以下代码提取的组件与图像的红色通道类似?
diff_im = imsubtract(data(:,:,1), rgb2gray(data));
答案 0 :(得分:3)
只有看起来就像红色通道一样。您的代码从红色通道(rgb2gray(data)
)中提取亮度(data(:,:,1)
),这将提供一种标准化的红色通道,但负值被截断为零。
如果data
是无符号整数(可能是uint8
),则减法不能给出负值,因此任何没有突出红色分量的像素都将设置为零。您可以通过减去签名数据类型并比较结果来查看这些像素的地图:
redMap = diff_im > (double(data(:,:,1))-double(rgb2gray(data)))