2010-10-27 67 views
3

下面是将RGB转换为YCbCr的矩阵。你能告诉我如何获得公式将YCbCr转换为RGB? 我的意思是,我有YCbCr值可用,我想从它得到RGB。 RGB to YUV Image矩阵表中的YCbCr到RGB

+0

您的意思是“将RGB转换为YCbCr”?你在问*公式如何派生?否则,我认为你回答了你自己的问题。 – 2010-10-27 10:50:58

+0

@Steve:是的,我在问公式如何得出?很长一段时间我做矩阵数学。 – SunnyShah 2010-10-27 10:51:46

+0

这是作业吗? – Jacob 2010-10-27 14:44:09

回答

1
Y = 0.2126*(219/255)*R + 0.7152(219/255)*G + 0.0722*(219/255)*B + 16 
CB = -0.2126/1.18556*(224/255)*R - 0.7152/1.8556(224/255)*G + 0.5*(219/255)*B + 128 
CR = 0.5*(224/255)*R - 0.7152/1.5748(224/255)*G - 0.0722/1.5748*(224/255)*B + 128 
+0

感谢您的快速回答,但问题是如何让YCbCr转换为RGB转换。 – SunnyShah 2010-10-27 10:53:13

+0

你为什么不满意这个公式? – user434507 2010-10-27 10:54:18

+0

我的意思是我有YCbCr可用,我想将它转换为RGB。 – SunnyShah 2010-10-27 10:56:15

1

http://www.fourcc.org/fccyvrgb.php有YUV到RGB转换。

+0

我有YCbCr aleready可用,我只需要一个公式将YCbCr转换为RGB。该公式应基于上表。 – SunnyShah 2010-10-27 11:19:22

+0

@孙尼,你检查了链接吗?这两个公式都可用。 – 2010-10-27 15:01:54

+0

@Mark Ransom,但我想只从上述矩阵派生的公式。 – SunnyShah 2010-10-27 16:25:32

4

如果您问的是如何导出公式,您可能需要搜索“色坐标系”。 This page特别对YCbCr空间进行了很好的讨论。

我们知道几乎任何颜色都可以表示为红色,绿色和蓝色的线性组合。但是,您可以转换(或“旋转”)该坐标系,以使三个基本元素不再是RGB,而是其他内容。在YCbCr的情况下,Y层是亮度层,Cb和Cr是两个色度层。 Cb与蓝色更密切相关,Cr与红色更密切相关。

YCbCr通常是首选,因为人类视觉系统对亮度变化比色度变化更为敏感。因此,诸如JPEG的图像编码器可以比亮度层更多地压缩两个色度层,导致更高的压缩比。

编辑:我误解了这个问题。 (您应该编辑它澄清。)这里是公式,从得到的YCbCr RGB,从above link采取:

r = 1.0 * y' + 0 * cB + 1.402 * cR 
g = 1.0 * y' - 0.344136 * cB - 0.714136 * cR 
b = 1.0 * y' + 1.772 * cB + 0 * cR 
+0

我有YCbCr aleready可用,我只需要一个公式将YCbCr转换为RGB。该公式应基于上表。 – SunnyShah 2010-10-27 11:42:58

+0

尼斯链接,但公式并不完全正确 - 正如所述,它的值为0.0-1.0,而不是0-255。 – 2010-10-27 14:52:20

+0

是的,好点。该链接还包含[0,255]的额外(但简单)修改。 – 2010-10-27 15:31:04

2

我不会占round部分,但由于M看起来可逆:

alt text

您可以将生成的向量四舍五入。