600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > RGB HSV HSL和YUV颜色空间

RGB HSV HSL和YUV颜色空间

时间:2020-02-29 12:03:12

相关推荐

RGB HSV HSL和YUV颜色空间

1.RGB 适合于显示系统,却并不适合于图像处理

(1) RGB是什么?

RGB 是最常用于显示器的色彩空间,R(red)是红色通道,G(green)是绿色,B(blue)是蓝色通道。这三种颜色以不同的量进行叠加,就可以显示出五彩缤纷的色彩

(2) RGB 为何不适合于图像处理

因为在自然环境下获取的图像容易受自然光照、遮挡和阴影等情况的影响,即对亮度比较敏感,而 RGB 颜色空间的三个分量都与亮度密切相关,即只要亮度改变,三个分量都会随之相应地改变。另外,RGB 颜色空间是一种均匀性较差的颜色空间,人眼对于这三种颜色分量的敏感程度是不一样的,在单色中,人眼对红色最不敏感,蓝色最敏感,如果颜色的相似性直接用欧氏距离来度量,其结果与人眼视觉会有较大的偏差。对于某一种颜色,我们很难推测出较为精确的三个分量数值来表示。

2.HSV 颜色空间比RGB更适用于图像处理

HSV能够直观地表达颜色的色调、鲜艳程度和明暗程度,方便进行颜色的对比,它比 BGR 更容易跟踪某种颜色的物体,常用于分割指定颜色的物体。

Hue(色调、色相)

Saturation(饱和度、色彩纯净度)

Value(明度)

HSV可以用下图表示

Hue 用角度度量,取值范围为0~360°,表示色彩信息,即所处的光谱颜色的位置

颜色圆环上所有的颜色都是光谱上的颜色,从红色开始按逆时针方向旋转,

Hue=0 表示红色,Hue=120 表示绿色,Hue=240 表示蓝色等等。

在 GRB中 颜色由三个值共同决定,比如黄色为即 (255,255,0);在HSV中,黄色只由一个值决定, Hue=60 即可

当 H u e = 60 Hue = 60 Hue=60 时,我们看看 S a t u r a t i o n Saturation Saturation 和 V a l u e Value Value的情况,这时我们获取的是:

Hue=60时的 HSV 圆柱体的半边横截面(也就是在60度角的位置切一个截面出来):如下图

其中,

水平方向(Saturation)表示饱和度,饱和度表示颜色接近光谱色的程度。饱和度越高,说明颜色越深;越接近光谱色,饱和度越低,说明颜色越浅,越接近白色。饱和度为0表示纯白色。取值范围为0~100%,值越大,颜色越饱和。

竖直方向(Value)表示明度,决定颜色空间中颜色的明暗程度,明度越高,表示颜色越明亮,范围是 0-100%。明度为0表示纯黑色(此时颜色最暗)。

可以这样理解:

在Hue一定的情况下,饱和度减小,就是往光谱色中添加白色,光谱色所占的比例也在减小,饱和度减为0,表示光谱色所占的比例为零,导致整个颜色呈现白色。

明度减小,就是往光谱色中添加黑色,光谱色所占的比例也在减小,明度减为0,表示光谱色所占的比例为零,导致整个颜色呈现黑色。

另外,还需要了解的是:

HSV 的拉伸对比度增强就是对 S 和 V 两个分量进行归一化(min-max normalize)即可,H 保持不变。

注意:在 OpenCV 中 HSV 三个分量的范围为:

H = [0,179]

S = [0,255]

V = [0,255]

当我们采用 HSV 的图像阈值得到某一种颜色时,可以参考颜色分布表,先将 H 通道对应的颜色找到。表格中,每种颜色都对应了一个区间。

假如我们要提取图片的蓝色部分,我们就在 H 通道取 100~124,S 通道取 43~255,V 通道取 35~255,范围内的像素值变白,其余的变黑,就可以得到很好的结果。

即使明度取值 255 也不会变为全白,因为这时,这个取值是指蓝色的亮度,而不是像 RGB 一样表示颜色。饱和度同理。

3. HLS 颜色空间

HLS 和 HSV 比较类似,

HLS 指的是:hue(色相)、saturation(饱和度)、lightness(亮度)

关于明度和亮度, 可点击一张图看懂亮度、明度、光度、光亮度、明亮度了解

HLS 中的 L (Lightness)分量为亮度,亮度为100,表示白色,亮度为0,表示黑色;HSV 中的 V 分量为明度,明度为100,表示光谱色,明度为0,表示黑色。

提取白色物体时,使用 HLS 更方便,因为 HSV 中的Hue里没有白色,白色需要由S和V共同决定(S=0, V=100)。而在 HLS 中,白色仅由亮度L一个分量决定。所以检测白色时使用 HSL 颜色空间更准确。

在 OpenCV 中 HLS 三个分量的范围为:

H = [0,179]

L = [0,255]

S = [0,255]

代码部分可参考我这个分类栏目下的文章

4. YUV

YUV 是一种彩色编码系统,主要用在视频、图形处理流水线中(pipeline)。相对于 RGB 颜色空间,设计 YUV 的目的就是为了编码、传输的方便,减少带宽占用和信息出错。人眼的视觉特点是对亮度更铭感,对位置、色彩相对来说不铭感。在视频编码系统中为了降低带宽,可以保存更多的亮度信息(luma),保存较少的色差信息(chroma)。相对于RGB,也可以节省很大的空间

YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法。在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和两个色差总共三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的如果只有Y信号分量而没有U、V信号分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。

并不是每个像素点都需要包含了 Y、U、V 三个分量,根据不同的采样格式,可以每个 Y 分量都对应自己的 UV 分量,也可以几个 Y 分量共用 UV 分量。相比 RGB,能够节约不少存储空间。

参考文献:

RGB、HSV和HSL颜色空间 ~ z.defying ~ 知乎

图像切割

用色彩空间做图像处理,让颜色提取更高效

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。