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''= 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模型,
该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。
第一个公式是YUV转换RGB(范围0-255)时用的,第二个公式是用在YUV(601)也成为YCbCr转换RGB(范围0-255)时用的。
1.Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
2.B= 1.164 * (Y - 16) + 2.018 * (U - 128)
G= 1.164 * (Y - 16) - 0.38 * (U - 128) - 0.813 * (V - 128)
R= 1.164 * (Y - 16) + 1.159 * (V - 128)
中"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''= 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模型,
该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。
第一个公式是YUV转换RGB(范围0-255)时用的,第二个公式是用在YUV(601)也成为YCbCr转换RGB(范围0-255)时用的。
1.Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
2.B= 1.164 * (Y - 16) + 2.018 * (U - 128)
G= 1.164 * (Y - 16) - 0.38 * (U - 128) - 0.813 * (V - 128)
R= 1.164 * (Y - 16) + 1.159 * (V - 128)
相关推荐
RGB和YUV是两种颜色空间,它们在计算机图形和视频处理中扮演着重要角色。RGB(红绿蓝)是加性颜色模型,广泛应用于显示器、电视等设备,它基于三种基本颜色(红色、绿色和蓝色)的不同组合来创建各种色彩。而YUV...
RGB和YUV是两种常见的颜色空间模型,它们在多媒体编程中扮演着重要角色,特别是在视频处理和图像显示领域。 RGB,全称Red、Green、Blue,是一种加性颜色模型。在RGB模型中,颜色由红色、绿色和蓝色三种基色的强度...
总的来说,理解OpenGL和EGL的工作原理,熟悉RGB和YUV颜色空间的转换,以及掌握如何利用GPU加速图像处理,是Android开发中的关键技能。通过`GLAccelerate`这样的工具,开发者可以更加便捷地实现复杂的图像操作,提高...
总的来说,RGB-YUV转换工具是一个实用且教育性的Android应用,它满足了开发和学习的需求,为处理RGB和YUV色彩信息提供了一种直观且便捷的途径。无论是对于专业人士还是爱好者,它都是一个值得尝试的工具。
RGB到YUV422转换在视频处理和图像编码领域是一项基本操作,它涉及到颜色空间的转换。在本文中,我们将深入探讨这个过程,以及如何使用VC++(Visual C++)编写小程序来实现这一转换。 RGB(红绿蓝)是数字图像中最...
在MATLAB中,可以使用imread和imwrite函数读取和写入图像,以及rgb2yuv和yuv2rgb函数进行颜色空间转换。具体代码实现时,需要特别注意处理NV12的U、V通道下采样,以及在写入BMP时的颜色排序。 举例来说,以下是一个...
RGB和YUV是两种广泛使用的颜色空间,它们在不同的场景下各有优势。下面我们将深入探讨这两种颜色空间以及它们之间的转换。 RGB(红绿蓝)色彩空间是加性颜色模型,适用于显示设备如显示器,其中红色、绿色和蓝色光...
这个"rgb2yuv.zip_RGB YUV_rgb to yuv_rgb2yuv"压缩包包含了一组工具和资源,用于将RGB格式的图像数据转换成YUV格式。在本文中,我们将详细探讨RGB和YUV颜色空间以及它们之间的转换过程。 RGB(红绿蓝)是加性颜色...
RGB到YUV颜色空间转换是图像处理中的一个重要概念,尤其在视频编码和数字电视系统中广泛应用。本资源“rgb2yuv.zip”提供了一个MATLAB实现的代码,用于将RGB图像转换为YUV格式。下面将详细介绍RGB和YUV颜色模型,...
RGB和YUV是两种常见的颜色空间,它们在数字图像处理和视频编码中有着广泛的应用。RGB代表红(Red)、绿(Green)、蓝(Blue)三种原色,是我们显示器上显示图像的基本颜色模型。而YUV则是一种为了节省带宽和存储空间...
RGB到YUV的转换就是其中的一个重要过程,尤其在编码、解码和显示视频时。本压缩包"RGB2YUV.rar_YUV420_rgb yuv420_rgb2yuv_rgb转yuv420"提供的程序专门用于将RGB色彩空间的数据转换成YUV420格式。接下来,我们将详细...
RGB到YUV转换是图像处理领域中的常见操作,特别是在视频编码和解码中。YUV色彩空间被广泛用于数字视频,因为它比RGB更节省存储空间和带宽,尤其是在传输和处理时。本压缩包"rgb2yuv.rar"包含了一个用C语言编写的将GB...
本程序是MATLAB对于图像进行RGB与YUV格式的相互转化
RGB到YUV颜色空间转换是图像处理中的常见操作,尤其在视频编码和数字电视系统中广泛应用。RGB(红绿蓝)是一种加性色彩模式,通常用于显示器,而YUV(亮度,色差,色差)则是一种减性色彩模式,更适用于电视和视频...
在计算机视觉和视频处理领域,RGB(红绿蓝)和YUV(亮度Y、色差U、色差V)是两种常见的颜色模型。RGB是加性颜色模型,用于显示器等发光设备,而YUV是减性颜色模型,常见于电视和视频系统。 Delphi是一种基于Pascal...
RGB到YUV转换是图像处理和视频编码领域中的一个常见操作。在计算机视觉和多媒体技术中,RGB(红绿蓝)色彩空间是最常见的颜色表示方式,而YUV(亮度、色差U、色差V)则常用于视频压缩和传输,尤其是在电视和数字视频...
本篇文章将深入探讨YUV和RGB两种颜色模型,以及如何进行它们之间的转换。我们也将介绍一个自编的小工具,它包含了实现这种转换的源码,方便进行测试和实际应用。 **一、YUV颜色空间** YUV是电视和视频系统中广泛...
其中,RGB色彩空间主要用于显示设备,而YUV色彩空间则被广泛用于计算机图像和视频处理中。随着嵌入式系统对视频处理速度要求的提高,色彩空间转换算法的效率变得尤为重要。 本文介绍了一种基于乘法元的RGB转YUV快速...
RGB和YUV是两种常见的颜色空间,它们在数字图像处理和视频编码中有着广泛的应用。本文将深入探讨这两种颜色空间的原理以及如何在VC++环境下将RGB格式转换为YUV格式。 首先,RGB(Red, Green, Blue)是加性颜色模型...