图像的RGB表示和YUV表示及亮度和色度的转换关系

2023-10-25 00:21

本文主要是介绍图像的RGB表示和YUV表示及亮度和色度的转换关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、RGB表示方式

1.1、浮点表示

归一化表示,取值范围0.0~1.0,如openGL对每个子像素点的表示方式。

1.2、整数表示

取值范围0~255或者00~FF,8bit表示一个子像素。
如图像格式RGBA_8888,表示4*8bit表示一个像素,
而RGB_565用5 + 6 + 5 bit表示一个像素。
一张1280 * 720, RGBA_8888格式的图片的大小 = 1280 * 720 * 32bit = 1280 * 720 * 32 / 8 byte,也是位图bitmap在内存中占用的大小。

2、YUV表示方式

视频的裸数据一般使用YUV数据格式表示。Y表示明亮度(Luminance/Luma),也称灰度值(灰阶值)。UY表示色度(Chrominance/Chroma),均表示影响的色彩和饱和度,用于指定像素的颜色。
亮度需要透过RGB输入信号建立,方式为将RGB信号的特定部分(g分量信号)叠加到一起。
色度定义了颜色的色调和饱和度,分别用Cr、Cb表示。(C代表分量(是component的缩写))
Cr反映RGB输入信号红色部分与RGB信号亮度值之间的差异。
Cb反映RGB输入信号蓝色部分与RGB信号亮度值之间的差异。
视频帧裸数据之所以采用YUV色彩空间,使用为亮度信号Y和色度信号UV是分离的。当无UV色度信号,只有Y亮度信号时,那么这样表示的图像就是黑白灰度图像。彩色电视正是使用YUV空间使用Y亮度信号解决彩色电视与黑白电视的兼容问题、使黑白电视也能接收彩色电视信号。最常用的YUV都使用8个字节来表示,所以取值范围就是0~255。但是广播电视系统不传输很低或很高的值,为了防止信号变动造成过载,因而把过高或过低这两边的数值作为“保护带”,在Rec.601和BT.709的广播标准中,Y的取值范围16~235,UV的取值范围都是16~240。

2.1、YUV的采样格式

YUV最常用的采样格式是4:2:0,还有4:2:2、4:4:4等格式,一般灰度(也就是亮度)的采样是不会减少的,因为人眼对亮度的敏感度高于色度,因此会选择适当地减少对色度的采样,节约空间
4:4:4表示色度值(UV)没有减少采样。即Y,U,V各占一个字节,加上Alpha通道一个字节,总共占4字节这个格式其实就是24bpp(bitperpixel)的RGB格式了。
4:2:2表示UV分量采样减半,比如第一个像素采样Y,U,第二个像素采样Y,V,依次类推每个点占用2个字节,由两个相邻的像素组成一个宏像素(macro-pixel)。
4:2:0这种采样并不意味着只有Y,Cb而没有Cr分量,这里的0说的U,V分量隔行才采样一次。比如第一行采样 4:2:0,第二行采样 4:0:2,依次类推...在这种采样方式下,每一个像素占用16bits或10bits空间。
4:1:1可以参考4:2:2分量,是进一步压缩,每隔四个点才采一次U和V分量。一般是第0点采Y,U,第1点采Y,第3点采YV,第四点采Y,依次类推。

2.2、YUV码流的存储格式(与采样格式密切相关)。

YUV存储格式分为两类:planar和packed
对于packed(打包格式)的YUV格式,每个像素点的Y,U,V是连续交叉存储的。将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel)
如YUV422采样的存储格式YUYV:
Y0 U0 Y1 V0 Y2 U2 Y3 V2....
其中Y0 U0 Y1 V0 这个像素组成一个宏像素。(Y0和Y1亮度分量共用U0,V0色度分量)。

对于planar(平面格式)的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。使用三个数组分开存放YUV三个分量,就像是一个三维平面一样。
如YUV422采样的存储格式YUV422P。

                                                        YUV420p数据格式

3、YUV和RGB之间的转化

RGB 转换成 YUV的标准公式:
Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
Cr = V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
Cb = U = -( 0.148 * R) - (0.291 * G) + (0.439 * B) + 128
YUV 转换成 RGB的标准公式:
B = 1.164(Y - 16) + 2.018(U - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
R = 1.164(Y - 16) + 1.596(V - 128)
///当然,可以对标准公式做适当的简化,降低运算量


链接:https://www.jianshu.com/p/4c764175ab39
 

这篇关于图像的RGB表示和YUV表示及亮度和色度的转换关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/278746

相关文章

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的