http://blog.sina.com.cn/s/blog_69e7ab31010191h7.html
对于颜色的研究还真不太好搞,因为我们在处理图片的时候通常第一件事就是将图片灰度化,这样什么所谓的色彩信息便全部丢失,但是有的时候,当灰度图效果不佳时,可以采用不同色彩的不同通道来突出ROI(region of interest),这里先简绍下常见的色彩空间和几个实例。
颜色空间按照基本结构可以分两大类:基色颜色空间(RGB)和色、亮分离颜色空间(CIE系列),其常见的有如下几个(经过本人总结整理,很多没有研究透彻,这里只做基本介绍):
颜色空间 | 描述 | 特点 |
RGB | 三原色光模式,采用加法混色法,它是描述各种“光”通过何种比例来产生颜色。 | 面向硬件的颜色空间,RGB颜色空间适合于显示系统,却并不适合于图像处理 |
CIE YUV | 是通过亮度,色差来描述颜色的颜色空间。亮度信号经常被称作Y,色度信号是由两个互相独立的信号组成 | |
CIE Lab | 用于计算机色调调整和彩色校正。它独立于设备的彩色模型实现。这一方法用来把设备映射到模型及模型本身的彩色分布质量变化 | Lab颜色空间可以直接通过使用颜色空间内的几何距离来做不同颜色之间的比较分析,所以可以有效地、方便地用在测量较小的色差上。可是尽管非线性变换空间可以消除其各个颜色分量之间存在的相关性,可用于数字图像处理,但因为是非线性变换,所以计算量比较大,并且颜色空间同样存在奇异点的问题。 |
CIE | 第一次基于人眼对于色彩感知度量建立色彩空间的尝试,它是几乎所有其它色彩空间的基础 | 国际照明委员会(CIE) |
CMYK | 印刷四分色模式,使用减法混色法,因为它描述的是需要使用何种油墨,通过光的反射显示出颜色。它是在一种白色介质(画板,页面等)上使用油墨来体现图像。CMYK描述的是青,品红,黄和黑四种油墨的数值。根据不同的油墨,介质,和印刷特性,存在多种CMYK色彩空间。(可以通过色点扩张或者转换各种油墨数值从而得到不同的外观). | |
HSB(HSV,HSI,HSL) | 使用色相(X轴)、饱和度(Y轴)和明度(Z轴)表示颜色的方法,HSV(色相hue,饱和度saturation,明度value),也称HSB (B指brightness),是艺术家们常用的,因为与加法减法混色的术语相比,使用色相,饱和度等概念描述色彩更自然直观 | 亮度(明度)分量与图像的彩色信息无关,所以对彩色处理只要考虑其它两个分量即可;②H与S分量与人眼感受颜色的方式很接近。可是,HSI颜色空间存在奇异点,在距离奇异点较近处,如果R、G、B分量有微小地变化就可能会导致H分量的巨大波动,致使系统不稳定。另一方面,HSI变换与RGB变换都是非线性变换,耗时多,无法满足机器手进行采摘工作的实时性需要 |
RG Chromaticity | 是用于计算机视觉的色彩空间,它可以显示光线的颜色,如红、黄、绿等,但是不能显示它的亮度如暗与亮 | |
YIQ | 属于NTSC系统。这里Y是指颜色的明视度,即亮度。其实Y就是图像灰度值,I和Q都指的是指色调,即描述图像色彩与饱和度的属性。 | RGB和YIQ的对应关系用下面的方程式表示: Y = 0.299R + 0.587G + 0.114B I = 0.596R - 0.275G - 0.321B Q = 0.212R - 0.523G + 0.311B |
当研究对象是依据人的眼睛进行分类识别时候的,由于计算机表示颜色的方式通常是面向硬件的RGB色彩空间,所以可以尝试使用与人眼更相近的色彩空间对烟叶颜色进行分析,这里考虑四个颜色空间, RGB, HSV, HLS, Lab其各自属性如上表所述。
用不同的色彩空间描述一图片的效果如下图所示,由此可见,不同的空间描述侧重点不同。例如直观的看HSV更偏重于RGB中最大量的显示,而HLS侧重于各个颜色的均值,Lab则更加倾向于色差区分:
RGB
![颜色特征(OpenCV) 颜色特征(OpenCV)](https://i-blog.csdnimg.cn/blog_migrate/edef49e1fd4242ad742a61b684df8f74.jpeg)
HSV
![颜色特征(OpenCV) 颜色特征(OpenCV)](https://i-blog.csdnimg.cn/blog_migrate/f8c2dcf072bb1d42b68c4490fda7533e.jpeg)
HLS
![颜色特征(OpenCV) 颜色特征(OpenCV)](https://i-blog.csdnimg.cn/blog_migrate/80adadd4f1f8e916e3ba5a460843425c.jpeg)
Lab
![颜色特征(OpenCV) 颜色特征(OpenCV)](https://i-blog.csdnimg.cn/blog_migrate/0b3e046b2d472ef2fa176ea001618b9d.jpeg)
说道EGB我想起来一件事,在openCV中采用的是BGR色彩格式与matlab的RGB有所不同,大家一定要注意注意再注意,第一次搞的我郁闷了好半天。
不知道相关程序放在哪好,CSDN,CodeSoSo,pudn 还是SourceForge上会比较方便,以后再说吧。。。
to be continued。。。
上述空间与RGB转换方式如下所示HSV((1)~(3)):
HLS((4)~(8)):
![颜色特征(OpenCV) 颜色特征(OpenCV)](https://i-blog.csdnimg.cn/blog_migrate/21e5f8b37deafb67642731a34809f33d.jpeg)
总结:颜色特征并不如别的特征(纹理与形状)用的那么多而且计算较为复杂,甚至有非线性计算部分,不如只含有一层通道的灰度图计算的简单,且获得彩色信息本就比较复杂(考虑到工业相机,而不是简单的数码相机,有机会专门写个工业相机文章,记得第一次搞相机的接口程序时候,搞的头都大了!),如果不采用专门的相机会导致色彩的失真,还不如仅用灰度图来的划算。
用颜色的特征还需对色彩知识有一定的理解,所以通常在两种情况下会用色彩特征1)特征太少2)色彩是区分的非常重要指标3)图像较为清晰,色彩较为准确(是拜耳算法获得的颜色信息就要仔细考虑了,否则一用就跪了可能)4)你不是色盲或者最后一种情况,你在搞科研堆文章创新点。
to be continued。。。