阅读文章:opencv中的色彩空间(RGB&HSV)(后续待补充)

Learn OpenCV教程:Opencv色彩空间

1.RGB(BGR)色彩空间

阅读文章:opencv中的色彩空间(RGB&HSV)(后续待补充)_第1张图片
BGR色彩空间特点:

  1. BGR是一种加色空间,最终图像由三个通道线性组合构成
  2. 三通道数值与撞击在物体表面的光量有关
    3.一般形式为(B,G,R):黑色为(0,0,0)白色为(255,255,255)

可以看到,在RGB(在OpenCV中为BGR)空间内,室内的明暗度对三个不同通道的取色有着很大的影响。

由此总结,RGB空间简洁有效,却存在着一定的问题:

  1. 感知不一致性质(perceptual non-uniformity)
  2. 色度和亮度的信息混合(mixing of chrominance and luminance)
    这使得我们难以在不同明暗条件下对颜色进行分割。

在单色中,人眼对红色最不敏感,蓝色最敏感,所以 RGB 颜色空间是一种均匀性较差的颜色空间。如果颜色的相似性直接用欧氏距离来度量,其结果与人眼视觉会有较大的偏差。对于某一种颜色,我们很难推测出较为精确的三个分量数值来表示。
RGB 颜色空间适合于显示系统,却并不适合于图像处理。

2.HSV色彩空间

由A.R.Smith 在1978创建
H: Hue 色相
S: Saturation 纯度
V: Value 强度
阅读文章:opencv中的色彩空间(RGB&HSV)(后续待补充)_第2张图片

关于Hue的说明:

Hue 用角度度量,取值范围为0~360°,表示色彩信息,即所处的光谱颜色的位置。
见下图:
阅读文章:opencv中的色彩空间(RGB&HSV)(后续待补充)_第3张图片
从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°;

最明显的优势:仅用H一个量控制颜色,保证了唯一性
例如在上图中可以看到,在RGB色彩空间中,黄色是(0,255,255),但在HSV中,H=60即可。

Saturation的意义

饱和度表示颜色接近光谱色的程度。饱和度越高,说明颜色越深,越接近光谱色。饱和度越,说明颜色越,越接近白色。饱和度为0表示纯白色。取值范围为0~100%,值越大,颜色越饱和。

关于Vue的意义

Vue表示明度,决定颜色空间中颜色的明暗程度,明度越高,表示颜色越明亮,范围是 0-100%,明度为0表示纯黑色。

简单举例

对于用户来讲,HSV对于构造颜色非常简单,例如构造淡青色,在RGB中我们需要调配蓝色和其他颜色的比例来调配,然而在HSV中将十分简单:
我们只需要找到欲得到的青色对应的H值(例如180左右),对于标准颜色,H=180,S=V=1即可,若要相对偏深色调低V的值,若要相对偏浅色调低S的值即可。

阅读文章:opencv中的色彩空间(RGB&HSV)(后续待补充)_第4张图片
可以看到:

  1. 在两个图像中,H分量都非常相似,这表明即使在光照变化下颜色信息也完整无缺。
  2. 在两个图像中,S分量也非常相似。
  3. V分量捕获落在其上的光量,因此它会由于照明的变化而变化。
  4. 红色的“室外”和“室内”图像的值之间存在巨大差异。这是因为色相表示为圆圈,红色为起始角度。因此,它可能取[300,360]到[0,60]之间的值。因此在H中由黑白两种

自我总结

可以看到,S代表纯度是颜色的光谱固有性质,几乎不会因为外界光照强度的大小而改变,而V代表强度,依赖于外界明暗条件。 中文译名还是相对贴切易懂的。

Il reste Lab & YCrCb

你可能感兴趣的:(阅读文章:opencv中的色彩空间(RGB&HSV)(后续待补充))