颜色空间模型

文章目录

  • 数字图像在内存中的存储方式
  • RGB颜色空间模型
  • HSV的颜色空间
  • HSI的颜色空间
  • HSV与HSI颜色空间模型的区别
  • RGB、HSV和HSI的转换方法

数字图像在内存中的存储方式


数字图像在内存中的存储就是一排排数字矩阵,如下图所示:

颜色空间模型_第1张图片

上图展示了图片中很小一个区域在内存中的存储形式,矩阵中的数值表示每个像素点强度值的大小。
OpenCv 读取图像数据并形成内存中的像素矩阵,像素矩阵的排布与图像的颜色空间和数据类型有关。OpenCv 作为一个计算机视觉库,其主要工作是处理和操作这些像素矩阵信息。
颜色空间是指针对一个给定的颜色模型,如何组合像素并对其进行编码;常见的颜色空间有灰度级空间、RGB颜色空间、HSV/HLS颜色空间、YCrCb颜色空间。数据类型决定了控制颜色的精度,常见的数据类型有无符号( 0 0 0 255 255 255 之间)的 char,有符号( − 127 -127 127 127 127 127 之间)的 char f l o a t float float型( 4 4 4 字节, 32 32 32位),double型( 8 8 8字节, 64 64 64位),其中,floatdouble 可以给出更精细的颜色分辨能力。同时增加像素的尺寸也会增加图像所占的内存空间。


RGB颜色空间模型


R G B RGB RGB 的颜色空间:该颜色空间主要用于计算机图形学中,表示每个像素具有 R 、 G 、 B R、G、B RGB 三种颜色分量,每个分量均为 [ 0 , 255 ] [0, 255] [0,255] 的大小,以三个分量为坐标轴,构建一个三维颜色空间。如下图所示。

颜色空间模型_第2张图片

由图可知: [ 0 , 0 , 0 ] [0, 0, 0] [0,0,0]:纯黑色; [ 255 , 255 , 255 ] [255, 255, 255] [255,255,255]:纯白色; [ 255 , 0 , 0 ] [255, 0, 0] [255,0,0]:纯红色; [ 0 , 255 , 0 ] [0, 255, 0] [0,255,0]:纯绿色; [ 0 , 0 , 255 ] [0, 0, 255] [0,0,255]:纯蓝色。
图片中任何一个带颜色的像素都是由RGB构成的结构[B, G, R, A](这是OpenCv的存储顺序, 不同于我们认为RGB顺序)。

在这里插入图片描述


HSV的颜色空间


这个颜色模型中参数分别是:色调(H)饱和度(S)明度(V)

  • 色调(H):用角度来度量,取值范围为 [ 0 ° , 360 ° ] [0°,360°] [0°360°],从红色开始按逆时针方向计算,红色为 0 ° 0° 0°,绿色为 120 ° 120° 120°,蓝色为 240 ° 240° 240°。它们的补色是:黄色为 60 ° 60° 60°,青色为 180 ° 180° 180°,品红为 300 ° 300° 300°
  • 饱和度(S):饱和度 S S S 表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果,其中光谱色所占的比例越大,颜色接近光谱色的成都越高,颜色的饱和度也就越高。饱和度越高,颜色则深而艳。光谱色的白光成分为 0 0 0,饱和度达到最高。通常取值范围为 [ 0 % , 100 % ] [0\%,100\%] [0%,100%],值越大,颜色越饱和。
  • 明度(V):明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。同城取值为 [ 0 % , 100 % ] [0\%, 100\%] [0%,100%]。与光强度没有直接的联系。

H S V HSV HSV 模型的三维表示从 R G B RGB RGB 立方体演化而来。设想从 R G B RGB RGB 沿着立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿着垂直轴测量。

颜色空间模型_第3张图片颜色空间模型_第4张图片

H S V HSV HSV 对于用户来说是一种直观的颜色模型。例如,要得到一种彩色模型,我们先指定彩色角 H H H,并让 A = S = 1 A=S=1 A=S=1,然后我们通过向其中加入黑色和白色得到我们需要的颜色。增加黑色可以减小 V V V S S S 不变,增加白色可以减小 S S S V V V 不变。例如,要得到深蓝色, V = 0.4 , S = 1 , H = 240 V=0.4, S = 1, H = 240 V=0.4S=1H=240


HSI的颜色空间


H S I HSI HSI,也可以叫 H S L ( H u e − S a t u r a t i o n − I n t e n s i t y ( L i g h t n e s s ) ) HSL(Hue-Saturation-Intensity(Lightness)) HSL(HueSaturationIntensity(Lightness)),其类似与 H S V HSV HSV 颜色空间模型。

  • 色调(H),饱和度(S):与 H S V HSV HSV 颜色模型的概念是一样的。颜色空间任一点距离 I I I 的距离。
  • 强度(I):对应成像亮度和图像灰度,是颜色的明亮程度。这个分量可以从图片彩色信息(色调和饱和度)里消去,使得 H S I HSI HSI 模型成为开发基于彩色描述的图像处理方法的良好工具,而这种彩色描述对于人来说是自然而直观的。
    注意:当强度 I = 0 I=0 I=0 时,色调、饱和度 S S S 无定义;当 S = 0 S=0 S=0 时,色调 H H H 无定义。

颜色空间模型_第5张图片


HSV与HSI颜色空间模型的区别


H S I HSI HSI H S V HSV HSV 的颜色模型比较接近,它们用来描述颜色相对于 R G B RGB RGB 等模型显得更加的自然。
H S I HSI HSI H S V HSV HSV 中, H H H 都表示色相,该值范围为 [ 0 , 360 ] [0, 360] [0,360],色相的意义就是光的波长,不同波长的光呈现了不同的色相。 S S S 都表示饱和度,其本质为一束光可能有很多种不同波长的单色光构成,波长越多颜色越分散,而单色光构成的色彩纯净度就很高。
两种模型唯一不同的就是最后一个分量:在 H S I HSI HSI 中表示亮度 ( L i g h t n e s s / L u m i n a n c e / I n t e n s i t y ) (Lightness/Luminance/Intensity) Lightness/Luminance/Intensity H S V HSV HSV V V V 表示明度(Value/Brightness)。

颜色空间模型_第6张图片

上图中能很好的对比出 H S I HSI HSI H S V HSV HSV 的区别:在 H S I HSI HSI 中,圆柱体外围是纯色,这圈纯色为与亮度 ( L / I ) (L/I) L/I 等于 1 / 2 1/2 1/2 的部位;而在 H S V HSV HSV 中,纯色对应于明度 ( V ) (V) (V) 等于 1 1 1 的部位。
H S L HSL HSL 中,饱和度分量总是对应等价的灰度值;而在 H S V HSV HSV 中,在极大值时候,饱和度从全饱和渐变话到白色,这可以认为是反直觉的。
H S L HSL HSL 中,亮度的跨越是从黑色经过色相到白色的;而在 H S V HSV HSV 中, V V V 分量是从黑色过渡到色相 ( H ) (H) (H) 的。


RGB、HSV和HSI的转换方法


RGB–>HSV

颜色空间模型_第7张图片


HSV --> RGB

颜色空间模型_第8张图片

你可能感兴趣的:(机器视觉)