图像处理之颜色空间小结

 1.介绍

    在图像处理中,我们会遇到各式各样的颜色空间,比如RGB、HLS、HSV、HSB、YCrCb、CIE XYZ、CIE Lab ,那么它们的区别和应用场所又在哪里呢?

    1)RGB是生活中最常见的颜色空间,其中,R代表红色通道,G代表绿色通道,B代表蓝色通道,它们之间的相互搭配组合256*256*256,几乎可以包括人类视力所能感知的所有颜色。应用场所:一般的彩色图片都是用RGB三通道来表示,另外,在深度学习领域,很多图片的输入也是RGB三通道的,比如目标跟踪、图像超分等。

    2)在HLS颜色空间里,其中,H代表色相通道,L代表饱和度通道,S代表亮度通道

    3)HSV、HSB是同样的一个颜色空间,其中,H代表色相,S代表饱和度,V代表明度。如果我们不仔细辨别HSV和HSB,如果它们就是一个东西,在原理和表现上,HSL 和 HSB 中的 H(色相) 完全一致,但二者的 S(饱和度)不一样, L 和 B (明度 )也不一样:

  • HSB 中的 S 控制纯色中混入白色的量,值越大,白色越少,颜色越纯;
  • HSB 中的 B 控制纯色中混入黑色的量,值越大,黑色越少,明度越高
  • HSL 中的 S 和黑白没有关系,饱和度不控制颜色中混入黑白的多寡;
  • HSL 中的 L 控制纯色中的混入的黑白两种颜色。

    另外,有了RGB通道,又为什么要引入HSL和HSB通道呢?因为,人去描述一个颜色的时候,不仅仅会说是什么颜色,也会说其明暗,因此他们的应用场景常见如艺术家,此时,我在想,通过深度学习做的风格转移,如果用此通道作为输入,其结果又会怎么样呢?

    4)YCrCb,它的另外一个大名是YUV,其中,其中“Y”表示明亮度,也就是灰阶值;而“U”和“V” 表示的则是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色。YUV常用于视频传输中,而且有一个很好的优点是可以兼容黑白电视机(只传Y通道即可)

    5)在CIE XYZ颜色空间里面,其中X、Y、Z是R、G、B的线性变换的结果,因为Y不仅仅包含绿色,并且由于人眼感受绿色,要比红色和蓝色要亮,因此Y也被定义为亮度。其作用就是在RGB系统的基础上,用数学方法,选用三个理想的原色来代替实际的三原色,从而将CIE-RGB系统中的光谱三刺激值和色度坐标r、g、b均变为正值

    6)在CIE Lab颜色通道里面,它由三个要素组成,一个要素是亮度(L),a 和b是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。因此,这种颜色混合后将产生具有明亮效果的色彩。这个颜色通道是不依赖光线,也不依赖于颜料

2.代码

import matplotlib.pyplot as plt
import cv2

img_bgr = cv2.imread('kodim04.png')  # BGR

img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)
plt.subplot(2, 3, 1)
plt.imshow(img_rgb);
plt.axis('off');
plt.title('RGB')

img_hls = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HLS)
plt.subplot(2, 3, 2)
plt.imshow(img_hls);
plt.axis('off');
plt.title('HLS')

img_hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)
plt.subplot(2, 3, 3)
plt.imshow(img_hsv);
plt.axis('off');
plt.title('HSV')

img_yuv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2YUV)
plt.subplot(2, 3, 4)
plt.imshow(img_yuv);
plt.axis('off');
plt.title('YUV')

img_xyz = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2XYZ)
plt.subplot(2, 3, 5)
plt.imshow(img_xyz);
plt.axis('off');
plt.title('XYZ')

img_lab = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2LAB)
plt.subplot(2, 3, 6)
plt.imshow(img_lab);
plt.axis('off');
plt.title('LAB')

plt.show()

3.效果

4.参考资料

    颜色空间(HSV/HSB与HLS)的区别_hsv空间_大写的ZDQ的博客-CSDN博客

    百度百科

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值