RGB与HSV的深层理解(详细)

简介:

最近准备研究计算机视觉领域,那么图片处理和人脸识别是其中一个模块,今天在学习OpenCV的时候,了解了一个新的模型HSV颜色模型,他与RNG色彩模型是一样的东西,之前了解一些RGB颜色模型,但是我觉得自己没有完全真正明白RGB到底是怎样决定颜色的变化的,包括什么是HSV。

目的:

  1. 深层理解RGB
  2. 什么是HSV
  3. 灰度化
  4. 两者联系

什么是RGB?

我们可以这样理解,我们生活的颜色其实都可以由R(红)、G(绿)、B(蓝)所组成,例如:R:83 G:134 B:139该组合会构成下面颜色。

 那既然颜色是三组数字所组成,必然颜色不可能是无穷多个,R、G、B一定会有取值的范围,他们的范围就是0~255(根据CIE(国际照明委员会)制定的颜色系统)。

如果你还不明白,还是不要紧,接下里我将利用图解的方式继续让你搞懂什么是RGB?青请看下图:

RGB与HSV的深层理解(详细)_第1张图片

 我们将三个通道对用到立体模型上,看到我R、G、B三个方向的通道了吗?随着三个叔值的不同,颜色也会随之变化,特殊的是当R=G=B时就是灰度图了,下面我会具体介绍什么是灰度图。

什么是HSV颜色模型?

如果说RNG颜色模型是一个正方体,那么HSV模型就是一个六棱锥,图示如下:

RGB与HSV的深层理解(详细)_第2张图片

通过图示我们也能够看到,他和RGB颜色模型相似,也是由三个属性决定颜色,H、S、V分别是色彩、深度、明暗,按着图中方向的变化,其对应的颜色也会改变,三者也同样是有取值范围的,不同的是他的灰度图和取值范围, S = 0时,只有灰度,取值范围是角度:

  • 色调H

用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;





  • 饱和度s

饱和度S表示颜色接近光谱色的程度。通常取值范围为0%~100%,值越大,颜色越饱和。

  • 明度V

明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。

什么是灰度图?

把白色与黑色之间按对数关系分成若干级,称为“灰度等级”。范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像,在医学、图像识别领域有很广泛的用途。

任何颜色都由红、绿、蓝三基色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:

  1. 浮点算法:Gray=R*0.3+G*0.59+B*0.11
  2. 整数方法:Gray=(R*30+G*59+B*11)/100
  3. 移位方法:Gray =(R*77+G*151+B*28)>>8;
  4. 平均值法:Gray=(R+G+B)/3;
  5. 仅取绿色:Gray=G;

通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。

你可能感兴趣的:(OpenCv,计算机视觉)