1. 基本原理
1.1 彩色模型
数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。而HSV模型更符合人描述和解释颜色的方式,HSV的彩色描述对人来说是自然且非常直观的。选择使用HSV模型的另一个因为是RGB通道并不能很好地反映出物体具体的颜色信息 , 而相对于RGB空间,HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比。
1.2 HSV模型
因为时间关系,在此先写出模型关键参数,若日后有朝一日变强了再来补习理论知识。
HSV模型中颜色的参数分别是:
色调(H:hue)
饱和度(S:saturation)
亮度(V:value)
由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。
(1)色调(H:hue):用角度度量,取值范围为0°~360°,
从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。
它们的补色是:黄色为60°,青色为180°,品红为300°;
(2)饱和度(S:saturation):取值范围为0.0~1.0,值越大,颜色越饱和。
(3)亮度(V:value):取值范围为0(黑色)~255(白色)
1.3 RGB转成HSV
(不确定是否在未来能否用到,在此处作为学习笔记暂时记录,理论上可以通过PS来获取目标区域的准确HSV数值,但不排除未来是用机器学习后需要在程序内添加这种数值转换的函数。)
设 (r, g, b) 分别是一个颜色的红、绿和蓝坐标,它们的值是在 0 到 1 之间的实数。
设 max 等价于 r, g 和 b 中的最大者。设 min 等于这些值中的最小者。
要找到在 HSV 空间中的 (h, s, v) 值,这里的 h ∈ [0, 360)是角度的色相角,而 s, v ∈ [0,1] 是饱和度和亮度,方法如下:
max = max(R,G,B)
min = min(R,G,B)
if R == max:
H = (G-B)/(max-min)
if G == max:
H = 2+(B-R)/(max-min)
if B == max:
H = 4+(R-G)/(max-min)
H = H * 60
if H < 0:
H = H