OpenCV实战(7)——OpenCV色彩空间转换
0. 前言
为了更好的进行图像处理,我们有时会使用不同的色彩空间。色彩空间是一个抽象的数学模型概念,色彩是人的眼睛对于不同频率的光线的不同感受,为了更好的表示色彩,人们建立了多种色彩模型以一维、二维、三维等坐标系来描述不同色彩,这种坐标系所能定义的色彩范围即色彩空间。
在 OpenCV 策略设计模式一节中,我们已经学习了如何将算法封装到类中,利用封装,算法通过简化的界面变得更易于使用。封装还允许我们在不影响使用它的类的情况下修改算法的实现。在本节中,我们通过修改 ColorDetector 类算法以使用另一颜色空间,通过实战介绍如何实现 OpenCV
的色彩空间转换。
1. RGB 色彩空间
RGB
颜色空间使用红色、绿色和蓝色加色原色。选择这些颜色是因为当它们组合在一起时,可以产生不同颜色的宽色域。事实上,人类视觉系统也是基于对颜色的三原色感知,视锥细胞的敏感性位于红、绿、蓝光谱周围。RGB
颜色空间通常是数字图像中的默认色彩空间,这也正是获取数字图像的方式(捕获的光通过红色、绿色和蓝色滤光片)。此外,在数字图像中,红色、绿色和蓝色通道会被调整,以便在等量组合时获得灰度级强度,即从黑色 (0,0,0)
到白色 (255,255,255)
。
但是,使用 RGB