YCbCr转RGB矩阵表

3
以下是将RGB转换为YCbCr的矩阵。您能告诉我如何获取将YCbCr转换为RGB的公式吗?我的意思是,我有可用的YCbCr值,想从中获取RGB值。
以下是将YCbCr转换为RGB的公式:
R = Y + 1.402 (Cr-128) G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128) B = Y + 1.772 (Cb-128)
请注意,这里的Y、Cb和Cr值应该在0到255之间。

你是指“将RGB转换为YCbCr”吗?你是在问公式是如何推导出来的吗?否则,我认为你已经回答了自己的问题。 - Steve Tjoa
@Steve:是的,我在问如何推导公式?我已经很久没有做矩阵数学了。 - SunnyShah
@Jacob:不是,这是工作任务。 :-) - SunnyShah
哈哈,好的。我的答案可能会有用。 - Jacob
请注意,此矩阵变换不考虑从sRGB->BT.709和从BT.709->sRGB的伽马校正,而这通常是您在处理视频时想要完成的。仅使用此矩阵变换仅对线性图像/视频数据有意义。 - MoDJ
6个回答

6
如果您想了解这个公式是如何推导出来的,可以搜索“颜色坐标系统”。这个页面对YCbCr空间进行了很好的讨论。
我们知道几乎任何颜色都可以表示为红、绿和蓝的线性组合。但是,您可以转换(或“旋转”)该坐标系,使得三个基本元素不再是RGB,而是其他东西。在YCbCr的情况下,Y层是亮度层,Cb和Cr是两个色度层。Cb与蓝色更密切相关,而Cr与红色更密切相关。
YCbCr通常更受欢迎,因为人类视觉系统对亮度的变化比色度的定量等价变化更敏感。因此,像JPEG这样的图像编码器可以压缩两个色度层而不是亮度层,从而获得更高的压缩比。
编辑:我误解了问题。(您应该编辑以澄清。)以下是从上述链接获取RGB的公式:
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

我已经有YCbCr可用,我只需要一个将YCbCr转换为RGB的公式。该公式应基于上表。 - SunnyShah
不错的链接,但公式不太对——按照所述,它适用于0.0-1.0的值,而不是0-255。 - Mark Ransom
是的,说得好。该链接还包含了对[0,255]的额外(但简单)修改。 - Steve Tjoa
在实现转换时,我忽视了“关键小事实”部分提到的y、u和v的缩放和原点问题。 - Mutant Bob

2

我不会解释round的部分,但是由于M看起来是可逆的:

alt text

您可以对得到的向量四舍五入。


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

感谢您的快速回答,但问题是如何进行YCbCr到RGB的转换。 - SunnyShah
为什么你对这个公式不满意? - Eugene Smith
1
我的意思是我有YCbCr可用,我想将其转换为RGB。 - SunnyShah

1

1
我已经有了YCbCr,现在只需要一个将其转换为RGB的公式。该公式应基于上述表格。 - SunnyShah
@Sunny,你检查了链接吗?两个公式都可用。 - Mark Ransom
但是我想要从上面的矩阵中推导出公式。 - SunnyShah

0

0

以下是适用于0-255色的方程式。这里是使用C语言的链接

RGB转YCBCR

y = 0.299* (r) + 0.587 * (g)    + 0.114* (b);
cb= 128 - 0.168736* (r) - 0.331364 * (g)    + 0.5* (b);
cr= 128 + 0.5* (r)  - 0.418688 * (g)    - 0.081312* (b);
    

YCBCR转RGB

r = (y) + 1.402 * (cr -128);
g = (y) - 0.34414 * (cb - 128) - 0.71414 * (cr - 128);
b = (y) + 1.772 * (cb - 128);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接