1
我正试图编写一个程序,该程序将图像转换为MATLAB中的chromaticity图像。将图像转换为色度图像
据我了解,实现色度,必须从R,G,B
计算r,g,b
,通过:
所以,我已经做到了这一点(或者至少尝试过),但它只是一个返回黑色图像...
这是我的计划:
img = double(imread('ref_images/foliage.jpg'));
%temp
chrom_Img = zeros(size(img, 1), size(img, 2));
%split channels
R_ = img(:,:,1);
G_ = img(:,:,2);
B_ = img(:,:,3);
%sum RGB channels (R+G+B)
s_RGB = R_ + G_ + B_;
%calc r g b with r = R/sum etc
r_ = R_./s_RGB;
g_ = G_./s_RGB;
b_ = B_./s_RGB;
%assign to chrom_Img
%chrom_Img = cat(3, r_, g_, b_); %also tried this
chrom_Img(:,:,1) = r_;
chrom_Img(:,:,2) = g_;
chrom_Img(:,:,3) = b_;
我缺少或实施我不正确的发生这种情况?
要查看示例图像,请参阅here。
真棒。感谢发布。很好的答案。我很高兴这很简单。再次感谢:D – Reanimation