1

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

1 回答 1

2

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

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

于 2013-05-14T13:19:41.347 回答