【问题标题】:extraction of inverted green channel response for image in matlab在matlab中提取图像的反向绿色通道响应
【发布时间】:2013-11-05 18:04:53
【问题描述】:

我想使用 MATLAB 提取图像的反向绿色通道响应。我已经实现了它,但我不知道它是否正确。我将非常感谢您的帮助。

y = x(:, :, 2);  %green channel
z=255-y; % inverted green channel

【问题讨论】:

  • 255 对于颜色深度较高的图像可能是错误的。
  • 亲爱的,我只反转绿色通道响应,绿色通道只有 0 到 255 个强度级别。
  • 但这并不一定适用于所有图像。所以@Daniel R 的评论是正确的。请在您的问题中添加所有重要信息以避免此类 cmets。
  • 我已经上传了图片
  • @ArslanAhmad:对于每个通道 8 位的图像,绿色通道有 0..255。这很常见,但不是一个常数。

标签: matlab image-processing


【解决方案1】:

一种更通用的方法是

%// Green channel
y = x(:, :, 2);  

%// Invert the green
if isinteger(y)
    z = intmax(class(y))-y;
elseif isfloat(y)        
    z = 1 - y;
elseif islogical(y)
    z = ~y;
else
    error('Strange image you''ve got there...');
end

注意:这假定图像在 RGB 颜色空间中,此外,如果它属于 float 类,则假定值已标准化为 1。如果有可能,您可能需要进行更多检查不同的。

无论如何:记录这些限制!

【讨论】:

  • 很好地使用intmax
  • 我发现我的方法和建议的方法没有区别
  • @ArslanAhmad:那是因为你只有 uint8 图像。如果您将代码与uint16uint32 图像一起使用,则会失败。我确实说我的代码更通用。我没有说你的实现是错误的;它只适用于您的特定环境。
  • 非常感谢@Rody Oldenhuis
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
相关资源
最近更新 更多