在matlab中提取图像的反转绿色通道响应

Dr.*_*lan 1 matlab image-processing

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

y = x(:, :, 2);  %green channel
z=255-y; % inverted green channel
Run Code Online (Sandbox Code Playgroud)

Rod*_*uis 7

一种更通用的方法

%// 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
Run Code Online (Sandbox Code Playgroud)

注意:这假设图像是RGB颜色空间,此外,如果它是类float,它假定值被标准化为1.如果可能有不同,您可能需要更多检查.

在任何情况下:记录这些限制!

  • @ArslanAhmad:那是因为你只有'uint8`图像.如果您将代码与`uint16`或`uint32`图像一起使用,则会失败.我*做*说我的代码更通用.我*没有*说你的实施是错误的; 它只适用于您的特定环境. (2认同)