在对图像进行处理时,前提图像必须是以数据的形式来描述的,而颜色空间就是用数据来表征图像颜色的一种方法。颜色信息由三个独立的分量来综合表示,这三个独立的分量构成了一个三维的坐标空间,每种颜色信息都在该空间中被唯一地表示。现有的颜色空间模型有:RGB、NTSC、YCbCr、CHL、HSV、CMY、CMYK、HSI、LAB、CIE、UCS、YUV等等。在数字图像处理中,常用的空间模型分别有RGB、YUV和HSV。
1 RGB颜色空间
RGB颜色空间模型是由红(R)、绿(G)、蓝(B)三种光谱组成,即通常所谓的三原色。在自然界中,人类可以感知到的任何一种色彩都可以由红、绿、蓝三种原色按照某种比例混合而得到,同样,任何一种颜色都可以分解成红、绿、蓝这三种色光。由于红、绿、蓝三个通道里的值各自控制对应三种颜色的亮度,这样就形成了数学上的一个三维空间,即所谓的颜色空间。由R、G、B组成的颜色空间中,坐标(255,255,255)表示的颜色是白色,坐标(0,0,0)则表示颜色是黑色。为了描述的方便,一般把RGB颜色空间看作一个以红(R)、绿(G)、蓝(B)为坐标轴定义的正方体,如下图所示。
2 YUV颜色空间
在YUV模型中,Y描述了亮度信息,U和V描述了图像的色彩信息,即亮度和色彩是分开的。如果只有Y信号分量而没有U、V分量,那么这样的图像就是黑白灰度图。YUV空间模型便于进行压缩,因此这种模型广泛应用于视频行业中。彩色电视采用YUV颜色空间正是为了用Y(亮度)来解决彩色电视与黑白电视之间的兼容问题。YUV空间模型可以由RGB空间模型转换而来,如下公式所示。
3 HSV颜色空间
HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。HSV空间模型符合人眼对颜色信息的理解,比RGB系统更接近于人们对色彩的感知。HSV空间模型可用一个六面椎体来表示,当V=0时,轴的末端为黑色;当V=1时,轴的末端为白色。饱和度(颜色的纯净度)是指到V轴的距离,如下图所示。
将RGB模型转换至HSV模型的MATLAB函数为rgb2hsv,输入的RGB的图像可以是uint8类、uint16类或者double类,输出的图像则是double类。将HSV模型转换至RGB的MATLAB函数是hsv2rgb,输入的图像则必须是double类,输出的图像同样是double类。
RGB模型转换为HSV模型的公式如下所示。其中,是色度H的幅角值。
HSV模型转换到RGB模型的转换公式如下公式所示。
4 总结
(1)RGB颜色空间
由红(R)、绿(G)、蓝(B)三种光谱组成,即通常所谓的三原色。
(2)YUV颜色空间
由亮度信号Y和两个色差信号R-Y、B-Y组成。
Y亮度信号和色差信号U、V是分离的。只有Y信号分量就可能表示黑白灰度图。
YUV颜色空间主要用于图像压缩和传输。
(3)HSV颜色空间
H色相 0-360 ;S饱和度:0-1;V亮度:0-1。