图像处理时,有些图像可能在 RGB 颜色空间信息不如转换到其它颜色空间更清晰.
这里整理下关于颜色空间的知识,以及 python-opencv 的实现.
图像处理中有多种色彩空间,例如 RGB、HLS、HSV、HSB、YCrCb、CIE XYZ、CIE Lab 等,经常要遇到色彩空间的转化,以便生成 mask 图等操作.
颜色空间也称彩色模型(彩色空间,彩色系统),主要是在某些标准下用通常可接受的方式对彩色加以说明.
本质上,彩色模型是坐标系统和子空间的阐述. 位于系统的每种颜色都有单个点表示.
在彩色图像处理中,选择合适的彩色模型是很重要的. 从应用的角度来看,众多彩色模型可以分为两类:
[1] - 面向诸如彩色显示器或彩色打印机之类输出显示场合使用的硬设备.
[2] - 面向视觉感知或者说以彩色处理分析为目的的应用,如动画中的彩色图形,各种图像处理的算法等.(这里主要是图像处理.)
1. 几种颜色空间
1.1. RGB
RGB (Red 红色,Green 绿色,Blue 蓝色),是根据人眼识别的颜色而定义的空间,可用于表示大部分颜色,也是图像处理中最基本、最常用、面向硬件的颜色空间,是一种光混合的体系.
RGB 颜色模式用三维空间中的一个点表示一种颜色,每个点有三个分量,分别表示红、绿、蓝的亮度值,亮度值限定为 [0, 1].
在RGB模型的立方体中,
[1] - 原点对应的颜色为黑色,它的三个分量值都为0;
[2] - 距离