YUV 转 RGB 公式中,YUV 的取值范围都是0到255吗

YUV 转 RGB 公式中,YUV 的取值范围都是0到255吗,第1张

YUV和RGB转换RGB和YUV都是色彩空间,用于表示颜色,两者可以相互转化。YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL)。YUV主要用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。与RGB视频信号传输相比

YUV和RGB转换

RGB和YUV都是色彩空间,用于表示颜色,两者可以相互转化。 YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL)。YUV主要用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。与R GB视频信号传输相比,它最大的优点在于只需占用极少的带宽(RGB要求三个独立的视频信号同时传输)。

中"Y"表示明亮度(Lumina nce或Luma),也就是灰阶值;是个基带信号。而"U"和"V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。U和V不是基带信号,它俩是被正交调制了的。

"亮度"是通过RGB输入信号来创建的,方法是将RGB信号的特定部分叠加到一起。"色度"则定义了颜色的两个方面-色调与饱和度,分别用Cr和CB来表 示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而CB反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。。通过 运算,YUV三分量可以还原出R(红),G(绿),B(兰)。

一、和rgb之间换算公式的差异

yuv<-->rgb

Y'= 0299R' + 0587G' + 0114B'

U'= -0147R' - 0289G' + 0436B' = 0492(B'- Y')

V'= 0615R' - 0515G' - 0100B' = 0877(R'- Y')

R' = Y' + 1140V'

G' = Y' - 0394U' - 0581V'

B' = Y' + 2032U'

yCbCr<-->rgb

Y’ = 0257R' + 0504G' + 0098B' + 16

Cb' = -0148R' - 0291G' + 0439B' + 128

Cr' = 0439R' - 0368G' - 0071B' + 128

R' = 1164(Y’-16) + 1596(Cr'-128)

G' = 1164(Y’-16) - 0813(Cr'-128) - 0392(Cb'-128)

B' = 1164(Y’-16) + 2017(Cb'-128)

Note: 上面各个符号都带了一撇,表示该符号在原值基础上进行了gamma correction

二、来源上的差异

yuv色彩模型来源于rgb模型,

该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。第一个公式是YUV转换RGB(范围0-255)时用的,第二个公式是用在YUV(601)也成为YCbCr转换RGB(范围0-255)时用的。1Y = 0299R + 0587G + 0114B

U = -0147R - 0289G + 0436B

V = 0615R - 0515G - 0100B R = Y + 114V

G = Y - 039U - 058V

B = Y + 203U2B= 1164 (Y - 16) + 2018 (U - 128)

G= 1164 (Y - 16) - 038 (U - 128) - 0813 (V - 128)

R= 1164 (Y - 16) + 1159 (V - 128)

matlab不会,但是我觉得是你转换公式有问题我以前编过一个图像程序用的是delphi但是公式应该是一样的记得rgb转yuv是至少有个必须乘05的参数,太久了记不太清,当时参考一本叫"delphi数字图像处理及高级应用"的书,不错的,虽然是delpi但是各种应用的算法都是通用的你可以找下,我记得网上有扫描版本的

我觉得这个题目应该看成以下两个子问题

1、什么时候认为两个色最接近

2、如何搜索

关于第一个问题:

因为有RGB三个通道,很容易的想法则是求某颜色与这50个颜色的值的欧拉距离。

但是我认为RGB这样的表示方式应该没有YUV来得好。如果让我做的话,我会先把所有的颜色均转换为YUV,因为YUV里面,Y是表示亮度的,UV表示色调,我们现在想比较的仅仅是色调。RGB里面三个通道都隐含了亮度信息,如果用YUV则可以去掉这个信息的影响。问题就转换为求UV两个通道的欧拉距离。

关于第二个问题:

如何搜索的问题,最笨的方法肯定就是一个一个找来比较,至于如何优化,例如有均值不等色算法之类的优化搜索方法,题主自己研究一下

用matlab应该是比较快的,起码有RGB转YUV的函数,具体的程序就不写了,应该挺简单的

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12182312.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存