RGB YUV

转载 2013年12月06日 10:49:15
今天对颜色一些格式转换有些不明白的地方,在网上找了一些文章,感谢原作者,现张贴如下:
颜 色空间是一个三维坐标系统,每一种颜色由一个点表示。在 RGB 颜色空间中,红,绿,蓝是基本元素。RGB 格式是显示器通常使用的格式。在 YUV 空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和 V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变。YUV 格式通常用于 PAL制,即欧洲的电视传输标准,而且缺省情况下是图像和视频压缩的标准。

YUV 使用RGB的信息,但它从全彩色图像中产生一个黑白图像,然后提取出三个主要的颜色变成两个额外的信号来描述颜色。把这三个信号组合回来就可以产生一个全彩色图像。

YUV 使用红,绿,蓝的点阵组合来减少信号中的信息量。Y 通道描述 Luma 信号,它与亮度信号有一点点不同,值的范围介于亮和暗之间。 Luma 是黑白电视可以看到的信号。U (Cb) 和 V (Cr) 通道从红 (U) 和蓝 (V) 中提取亮度值来减少颜色信息量。这些值可以从新组合来决定红,绿和蓝的混合信号。

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)
以前,一直没明白yuvYcbCr之间的差异,想必有些朋友也会有同样的疑惑。所以,我看完之后就记载下来了。
一、和rgb之间换算公式的差异
yuv<-->rgb
Y'= 0.299*R' + 0.587*G' + 0.114*B'
U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')
V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')
R' = Y' + 1.140*V'
G' = Y' - 0.394*U' - 0.581*V'
B' = Y' + 2.032*U'
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.813*(Cr'-128) - 0.392*(Cb'-128)
B' = 1.164*(Y’-16) + 2.017*(Cb'-128)
Note: 上面各个符号都带了一撇,表示该符号在原值基础上进行了gamma correction
二、来源上的差异
yuv色彩模型来源于rgb模型,
该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。
应用:basic color model used in analogue color TV broadcasting.
YCbCr模型来源于yuv模型。YCbCr is a scaled and offset version of the YUV color space.
应用:数字视频,ITU-R BT.601 recommendation
ps:
通过上面的比较可以确定,我们在h.264,mpeg等编码标准中用的yuv其实是YcbCr,大家不要被名称搞混淆了。

YUV和RGB的相互转换实验报告

1、彩色空间转换的公式及分析;2、实验流程分析;3、关键代码及分析;4、实验结果及分析;5、结论...
  • qq_37650889
  • qq_37650889
  • 2017年03月10日 14:20
  • 613

YUV与RGB互转各种公式 (YUV与RGB的转换公式有很多种,请注意区别!!!)

公式:基于BT.601-6 1.小数形式,full range 2.整数形式(减少计算量)full range 3. 量化后的公式( Y~(16,235) U/V ~(0,240) ) tv ...
  • u011258240
  • u011258240
  • 2017年01月18日 17:12
  • 4530

YUV转RGB汇总

/* YUV, http://zh.wikipedia.org/wiki/YUV#.E5.B8.B8.E7.94.A8.E7.9A.84YUV.E6.A0.BC.E5.BC.8F *...
  • mt122
  • mt122
  • 2014年08月09日 20:36
  • 1216

YUV与RGB格式转换

原文:http://www.cnblogs.com/dwdxdy/p/3713990.html YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式。 因此当...
  • huang546213693
  • huang546213693
  • 2015年11月26日 12:24
  • 12957

常用YUV转RGB代码

常用YUV转RGB java代码 public class YuvToRGB { private static int R = 0; private static int G = 1; ...
  • huiguixian
  • huiguixian
  • 2013年12月15日 15:10
  • 30177

RGB转YUV

YUV格式有两大类:planar和packed。 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。 对于packed的YUV格式,每个像素点...
  • u013566722
  • u013566722
  • 2015年09月02日 17:39
  • 2465

【OpenGL】用OpenGL shader实现将YUV转RGB-(直接调用GPU实现,纯硬件方式,效率高)

这段时间一直在搞视频格式的转换问题,终于最近将一个图片的YUV格式转RGB格式转换成功了。下面就来介绍一下: 由于我的工程是在vs2008中的,其中包含一些相关头文件和库,所以下面只是列出部分核心...
  • xiaoguaihai
  • xiaoguaihai
  • 2013年03月14日 13:42
  • 19350

rgb to yuv 互相转化

说明:下面的代码用C\C++执行都可以,用C的时候请把#include 删除。 RGB to YUV420 原代码:  RGB2YUV.CPP文件 [cpp] view plain...
  • yangzm
  • yangzm
  • 2014年09月18日 10:27
  • 1421

YUV 格式与 RGB 格式的相互转换公式及C++ 代码

YUV 格式与 RGB 格式的相互转换公式最近在用的一个工业相机,输出的图像格式是 YUY2 格式。而在电脑上显示时需要 RGB 格式,所以就花了些时间在网上查了些相关的资料。说实话,网上关于 YUV...
  • liyuanbhu
  • liyuanbhu
  • 2017年04月02日 13:00
  • 4323

YUV格式与RGB格式的换算

以下是标准公式 RGB 转换成 YUV Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16 Cr = V = (0.439 * ...
  • zwz1984
  • zwz1984
  • 2015年12月31日 14:48
  • 2492
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RGB YUV
举报原因:
原因补充:

(最多只允许输入30个字)