RGB YUV简介

本文详细介绍了RGB和YUV色彩模型的概念、特点及应用领域。RGB模型基于亮度、色调和饱和度定义颜色,而YUV模型分离亮度与色度,更适合图像处理。文章还探讨了YCbCr模型与RGB、YUV之间的转换公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:

https://blog.csdn.net/amy2020/article/details/62049376

https://www.cnblogs.com/xkfz007/archive/2012/07/31/2616806.html

https://baike.so.com/doc/5398205-5635586.html 

https://baike.so.com/doc/5509659-5745405.html

 

RGB

在色度学中,为了确切表示某一种彩色,采用亮度、色调和色饱和度三个基本参量。

  • 彩色视觉是人眼对这个三个参量的总体感觉。
  • 亮度是光作用于人眼所引起的明亮程度的感觉。
  • 色调是反映了彩色的类别。也就是通常所说的红,绿,蓝等就指的是色调。
  • 色饱和度是指彩色光所呈现彩色的深浅程度。

 

RGB特点: (R,G,B 都是 8bit unsigned) 模型,每个像素点需要 8x3=24 bits

  • 【red】0,0,255    
  • 【green】0,255,0    
  • 【blue】255,0,0   
  • 【white】255,255,255   
  • 【black】0,0,0

 

YUV 和 YCbCr 来源上的差异

YUV 色彩模型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。

  • 应用:用在模拟彩色电视广播的基本颜色模型中。

 

YCbCr模型来源于yuv模型,应用于数字视频,ITU-R BT.601 recommendation

  • 应用:数字视频,ITU-R BT.601 recommendation。

 

在YUV 家族中, YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEG、MPEG、H.264、 H.265 均采用此格式。一般所讲的YUV大多是指  YCbCr

 

YCbCr特点: YCbCr其中Y是指亮度分量,C代表分量(是component的缩写)

  • Cb对应b(蓝) ,  Cr对应r(红)分量信号
  • Cb(U)和 Cr(V )通道从红 (U) 和蓝 (V) 中提取亮度值来减少颜色信息量表示色度
  • Y除了g(绿)分量信号,还叠加了亮度信号
  • YCbCr 常用格式YUV4∶4∶4 , YUV4∶2∶2 , YUV4∶1∶1 和YUV4∶2∶0

 

YCbCr采样格式 (Cb≈U和 Cr≈V )

主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0  

1、YUV444: 每一个Y对应一组UV分量

  • YUV444p:YYYYYYYYY VVVVVVVVV UUUUUUUU

 

2、YUV422: 每两个Y共用一组UV分量

  • YUV422p:YYYYYYYY VVVV UUUU
  • YUVY      :YUYV YUYV YUYV YUYV
  • UYVY      :UYVY UYVY UYVY UYVY

 

3、YUV420: 每四个Y共用一组UV分量

  • YV12:YYYYYYYY VVUU
  • I420 :YYYYYYYY UUVV

 

4、YUV420sp:每四个Y共用一组UV分量

  • NV12:YYYYYYYY UVUV
  • NV21:YYYYYYYY VUVU
  • android 通常使用 NV21

 

YUV和RGB的转换:

Y = 0.299 R + 0.587 G + 0.114 B
U = -0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128

R = Y + 1.402 (V-128)
G= Y - 0.34414 (U-128) - 0.71414 (V-128)
B= Y + 1.772 (U-128)

 

YCbCr与RGB的相互转换

Y = 0.257*R+0.504*G+0.098*B+16
Cb = -0.148*R-0.291*G+0.439*B+128
Cr = 0.439*R-0.368*G-0.071*B+128

R = 1.164*(Y-16)+1.596*(Cr-128)
G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)
B = 1.164*(Y-16)+2.017*(Cb-128)

 

 

 

### RGBYUV之间的换或关系 在图像处理领域,RGBYUV 是两种不同的颜色空间表示方法。RGB 颜色模型基于红 (Red)、绿 (Green) 和蓝 (Blue) 三种基本颜色的组合来定义色彩,而 YUV 则是一种亮度/色度分离的颜色模型,其中 Y 表示亮度分量,U 和 V 表示色度分量。 #### 换公式 从 RGBYUV换可以通过线性变换实现。具体的换公式如下: 对于标准 ITU-R BT.601 定义的换矩阵[^1]: ```python Y = 0.299 * R + 0.587 * G + 0.114 * B U = -0.147 * R - 0.289 * G + 0.436 * B V = 0.615 * R - 0.515 * G - 0.100 * B ``` 逆向换(即从 YUV 返回到 RGB)可以使用以下公式: ```python R = Y + 1.14 * V G = Y - 0.395 * U - 0.581 * V B = Y + 2.032 * U ``` 这些公式的推导依赖于特定的标准和应用场景,在实际应用中可能会有所调整以适应不同设备的需求。 #### 应用场景 YUV 颜色空间的一个重要特性是其能够有效地压缩数据而不显著影响视觉质量。通过将亮度信息(Y)与色度信息(U,V)分开存储,可以在保持较高分辨率的同时降低色度部分的数据率。这种技术广泛应用于视频编码和传输过程中,例如 MPEG 或 H.264 编码标准中的帧间预测和量化过程[^2]。 此外,在某些特殊情况下,通过对参数 ρ 进行调节还可以增强对红色、黄色或其他色调区域的识别能力,从而辅助后续二值化及分割操作[^3]。 ### 示例代码 以下是 Python 中实现 RGBYUV 换的一段简单代码片段: ```python def rgb_to_yuv(r, g, b): y = 0.299 * r + 0.587 * g + 0.114 * b u = -0.147 * r - 0.289 * g + 0.436 * b v = 0.615 * r - 0.515 * g - 0.100 * b return y, u, v ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值