我将Y,Cb和Cr设置为零并使用matlab将其转换回RGB。我不明白的是,为什么我在RGB色彩空间中将红色和蓝色分量设为零,而绿色分量的值为132?
编辑:(评论代码):
I1 = imread('img.jpg');
img = rgb2ycbcr(I1);
lumin = img;
lumin(:,:,1) =0;
lumin(:,:,2) =0;
lumin(:,:,3)=0;
figure,imshow(lumin);
rgn = ycbcr2rgb(lumin);
figure,imshow(rgn);
答案 0 :(得分:2)
RGB和YCbCr之间的转换公式涉及偏移。因此,即使它在一个域中全部为零,也不会在另一个域中获得全零。如果您直接使用公式将全零YCbCr域矩阵转换为RGB,您将获得正绿色值和负红色和蓝色值。这些负值通常被阈值化为0,这就是你所看到的。
http://en.wikipedia.org/wiki/YCbCr的维基百科页面http://www.mathworks.com/help/vision/ref/colorspaceconversion.html和MATLAB色彩空间转换块参考页面显示了使用的公式。