欢迎订阅FPGA/MATLAB/Simulink系列教程
目录
2.3.1 YUV/YCrCb颜色空间(亮度 - 色度分离模型)
1. 颜色空间的定义
颜色空间(Color Space)是用数学方法对颜色进行量化描述的三维坐标系统,每个维度代表一种颜色分量。它通过定义原色(Primary Colors)及混合规则,将人类视觉感知的色彩映射为可计算的数值。例如,RGB颜色空间以红、绿、蓝三种光为原色,通过不同强度的混合表示各种颜色。
2.常见颜色空间与原理
2.1 设备相关颜色空间
2.1.1 RGB颜色空间
基于三原色光(Red, Green, Blue)的加性混合,每个颜色分量取值范围通常为[0, 255](8位精度),黑色为(0,0,0),白色为(255,255,255)。
2.1.2 CMYK颜色空间
用于印刷领域,基于青色(Cyan)、品红色(Magenta)、黄色(Yellow)和黑色(Key/Black)的减性混合。白色背景上通过油墨吸收特定波长光来呈现颜色,黑色单独使用是因为三原色混合无法得到纯黑。
从RGB到CMYK转换
2.2 感知相关颜色空间
2.2.1 HSV颜色空间
色相(Hue, H):颜色的种类,如红、绿、蓝,取值范围 [0°, 360°];
饱和度(Saturation, S):颜色的纯度,0为灰色,1为纯色;
明度(Value, V):颜色的明亮程度,0为黑色,1为最亮。
RGB到HSV转换
首先将RGB归一化到[0,1],计算最大值max和最小值min,差值 Δ=max−min。
2.2.2 HSL颜色空间
与HSV类似,但亮度(Lightness, L)定义为从黑色(0)到白色(1)的中间值,50%为正常亮度。
RGB到HSL转换
2.2.3 CIELAB颜色空间
由国际照明委员会(CIE)定义,是与设备无关的颜色空间,旨在匹配人类视觉感知。它包含:
L∗:亮度,0为黑,100为白;
a∗:从绿到红的分量(负值为绿,正值为红);
b∗:从蓝到黄的分量(负值为蓝,正值为黄)。
从XYZ到CIELAB转换
首先需将RGB转换为CIE XYZ空间,再通过非线性变换得到LAB:
2.3 视频与图像处理专用空间
2.3.1 YUV/YCrCb颜色空间(亮度 - 色度分离模型)
广泛应用于视频编码(如H.264)和数字图像(如JPEG),将亮度(Y)与色度(UV或 CrCb)分离,减少色彩信息的数据量。
Y:亮度分量,反映图像明暗程度;
U/Cb:蓝色色度分量(B-Y);
V/Cr:红色色度分量(R-Y)。
BT.601标准下的RGB到YUV转换
2.3.2 YCoCg颜色空间(高效图像处理模型)
由微软提出,用于图像压缩和处理,分量为:
Y:亮度(与YUV类似);
Co:颜色偏移(Color Offset),表示蓝-黄分量;
Cg:颜色梯度(Color Gradient),表示红-青分量。
RGB到YCoCg转换
3. 硬件实现事项
FPGA实现:通过固定点运算替代浮点运算,使用流水线结构加速矩阵乘法,适用于实时视频处理;
专用芯片:图像信号处理器(ISP)中集成颜色空间转换模块,支持YUV与RGB的双向转换。
4. 本课程主要学习内容
在本课程中,我们将主要学习以下几个常用的颜色空间转换模型。
RGB--->CMYK
RGB--->HSV
RGB--->HSL
RGB--->CIE-Lab
等