【问题标题】:MATLAB - Extracting red color from an imageMATLAB - 从图像中提取红色
【发布时间】:2013-12-20 01:52:56
【问题描述】:

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

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

【问题讨论】:

  • 你能说得更具体一点吗?以“为什么”开头的问题并没有真正的帮助。有什么问题,这段代码可以正常工作。
  • 它有效,是的。但我不知道为什么。如果我从图像的红色分量中减去灰度图像,为什么它会为我提取红色?是不是清楚一点? ://
  • 红色通道是在您的参数之一中提取的:data(:,:,1)

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


【解决方案1】:

它只是看起来像红色通道。您的代码正在从红色通道 (data(:,:,1)) 中提取亮度 (rgb2gray(data)),这将提供一种归一化的红色通道,除了负值被截断为零。

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

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

【讨论】:

  • 好的,我现在明白了。谢谢。
猜你喜欢
  • 2013-06-04
  • 2012-04-12
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 1970-01-01
相关资源
最近更新 更多