RGB、YUV以及YCbCr颜色空间基础
1、前言
RGB、YUV以及YCbCr是人为规定的彩色模型或颜色空间,它的用途是在某些标准下用通常可接受的方式对彩色加以说明,本质上,彩色模型是坐标系统和子空间的阐述。
2、各种颜色空间
(1)RGB
RGB代表红绿蓝,它是依据人眼识别的颜色定义出的空间,可以用来表示大部分颜色,在科学研究一般不采用RGB颜色空间,它的细节难以进行数字化的调整,将色调、亮度以及饱和度三个量放在一起表示,很难分开,但是它是最通用的面向硬件的彩色模型,该模型多用于彩色监视器和一大类彩色视频摄像。
(2)YUV
在YUV颜色空间中,每一个颜色有一个亮度信号Y和两个色度信号U和V,亮度信号是强度的感觉,它和色度信号分开,这样的话就可以在不影响颜色的情况下进行改变,YUV使用RGB的信息,但是它从全彩色图像中产生一个黑白图像,然后提取出三个主要的颜色变成两个额外的信号来描述颜色,把这三个信号组合回来就可以产生一个全彩色图像,Y通道描述Luma信号,它与亮度信号有一点不同,值的范围介于亮和暗之间,Luma信号是黑白电视可以识别的信号,U(Cb)和V(Cr)通道从红(U)和蓝(V)中提取亮度值来减少颜色信息量,这些值可以从新组合来决定RGB的混合信号。
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)
(3)YCbCr
YCbCr是在世界数字组织视频标准研制过程中作为ITU-R BT1601建议的一部分,其实是YUV经过缩放和偏移的翻版,其中Y与YUV中的Y含义一致,Cb和Cr同样都是表示色彩,只是在表示方法上不同而已,在YUV家族中,YCbCr是计算机系统中应用最多的成员,其应用领域很广泛,JPEG以及MPEG均采用此格式,一般人们所讲的YUV大多是指YCbCr。
YCbCr与RGB的相互转换:
Y = 0.299R + 0.587G + 0.114B
Cb = 0.564(B-Y)
Cr = 0.713(R-Y)
R = Y + 1.402Cr
G = Y - 0.344Cb - 0.714Cr
B = Y + 1.772Cb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App