盒子
盒子
文章目录
  1. 颜色特性
  2. 色彩空间
    1. RGB转换到YUV的方法
    2. RGB转换到YCbCr的方法

数字图像处理第三章--色彩空间

本文章是左飞的《Visual.Cpp数字图像处理开发入门与编程实践》的第三章阅读笔记。

颜色特性

颜色:光本质上是一种电磁波。人眼可以感受的波长范围内的电磁波称为可见光。可见光通过三棱镜时将被分解为由紫到红的连续彩色色谱。

色相:即色彩的相貌,如大红、柠檬黄等。色相由原色、间色和复色来构成。色相的差别是由光波波长的长短产生的。即便是同一类颜色,也能分为几种色相。

色调:代表着某种颜色的性质和特点,它是由物体表面反射的光线中什么波长占优势决定的。色调可以指色彩的明暗度,也可以指色彩的冷暖感。

饱和度:指图像颜色的彩度,表示光线的色彩深浅度或鲜艳程度,调整饱和度也就是调整图像的彩度。从原理上讲,可见光谱和各种单色是最饱和的。彩色光谱中掺入的白光成分越多,就越不饱和。对颜色而言,饱和度变化有两个趋势:一是变亮,相当于掺入白色成分;一是变暗,相当于加入灰色或黑色。

1
一般来说,人眼最大能区分128种不同的色彩,130种色饱和度和23种明暗度。

色彩空间

色彩空间:也称作色彩模型,是数学化描述色彩的基础。

  1. RGB颜色空间
  2. CMY/CMYK颜色空间:主要用于作画或印刷,颜料是会吸收光线,而不是增强光线。
  3. HSV/HSB(HSI/HCI/HSL)颜色空间
  4. YUV/YCbCr颜色空间:YUV是应用于电视机系统的一种颜色编码方法,主要用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。因为他的亮度信号Y和色度信号U、V是分离的,所以如果没有U、V分量,那么这样表示的图就是黑白灰度图。
RGB转换到YUV的方法
  • RGB -> YUV
    将R,G,B归一化,0 <= R, G, B <= 1
1
2
3
Y = 0.299R + 0.587G + 0.114B
U = -0.14713R - 0.28886G + 0.436B
V = 0.615R - 0.51499G - 0.10001B
  • YUV -> RGB
1
2
3
R = Y + 1.13983U
G = Y - 0.39465U - 0.58060V
B = Y + 2.03211U
RGB转换到YCbCr的方法

R,G,B的取值范围是[0,255], 0 <= Y <= 255, 0 <= Cb, Cr < 256

  • RGB -> YCbCr
1
2
3
Y = 0.29900R + 0.58700G + 0.11400B
Cb = -0.16874R - 0.33126G + 0.50000B + 128
Cr = 0.50000R - 0.41869G - 0.08131B + 128
  • YCbCr -> RGB
1
2
3
R = Y + 1.402(Cr -128)
G = Y - 0.34414(Cb - 128) - 0.71414(Cr - 128)
B = Y + 1.772(Cb -128)

文中有疏漏欢迎指出。