将Y,Cb和Cr设定为零后的绿色成分

时间:2013-05-14 11:26:11

标签: matlab colors rgb yuv

我将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);

1 个答案:

答案 0 :(得分:2)

RGB和YCbCr之间的转换公式涉及偏移。因此,即使它在一个域中全部为零,也不会在另一个域中获得全零。如果您直接使用公式将全零YCbCr域矩阵转换为RGB,您将获得正绿色值和负红色和蓝色值。这些负值通常被阈值化为0,这就是你所看到的。

http://en.wikipedia.org/wiki/YCbCr的维基百科页面http://www.mathworks.com/help/vision/ref/colorspaceconversion.html和MATLAB色彩空间转换块参考页面显示了使用的公式。