图像处理中三种颜色空间的转换示例

关于图像处理中 常用到的RGB、HSV、CIELab三种颜色空间的相关知识,在这里向大家推荐两篇讲得比较好的博客:RGB颜色空间、色调、饱和度、亮度、HSV颜色空间详解以及彻底搞懂Lab 颜色空间。在本文中,主要利用Opencv来对图像在三个空间中的转换关系进行举例。
RGB颜色空间:最常用的图像颜色表示空间,RGB颜色空间代表了图像的红(Red)、绿(Green)、蓝(Blue)三个颜色通道,三通道的取值范围为0-255,所以我们常见的彩色图像经常使用24位(3*8)进行表示。
HSV颜色空间:人类视觉观感最强的颜色空间(该空间上的颜色变化人类最容易进行区分),其中H(Hue)代表色调,表达了图像的颜色更偏向于哪种颜色,在HSV颜色空间中,该分量用角度进行表示,取值范围为0-360°(其中0°代表红色,120°代表绿色,240°代表蓝色。)S(Saturation)代表饱和度,其具体表示了某种颜色(H所代表的颜色)的深浅程度,其组成是由标准的光谱色和白色进行混合而成的。其取值范围为0-1V(Value)表示了某种颜色的明暗程度(亮度大小),其取值范围也为0-1。关于HSV颜色空间的具体数学模型(为一个圆锥形,HSV分别从圆锥的三个维度描述了颜色的变化范围),具体见RGB颜色空间、色调、饱和度、亮度、HSV颜色空间详解这篇博客。
CIELab颜色空间:其最大的特点是图像的色彩属性不会因为其显示设备的不同而发生改变。这是在图像处理中经常用到其的最重要的原因。在该颜色空间中,主要有三个颜色分量:L,a,b。其中,L代表图像的亮度变化,取值范围为0-100,数值越大,图像的亮度越高。其中,0代表黑色,100代表白色。a和b都代表颜色的变化,二者的取值范围为-100–100/-128-127。当a由负到正变化时,颜色由绿红色b由负到正变化时,颜色由蓝黄色。当a和b都为0时,代表灰色。在CIELab颜色空间中,所有的颜色的定义都是相对于白色点定义的。具体详细解释参见博客:彻底搞懂Lab 颜色空间
本文以Opencv为工具,将以上三种颜色空间的图像转换表示如下:

import cv2
import matplotlib.pyplot as plt

filename='0.jpg'
img_rgb=cv2.imread(filename)
img_hsv=cv2.cvtColor(img_rgb,cv2.COLOR_BGR2HSV)
img_CIELab=cv2.cvtColor(img_rgb,cv2.COLOR_BGR2LAB)
cv2.namedWindow('RGB_Space',0)
cv2.imwrite('0_hsv.jpg',img_hsv)
cv2.imwrite('0_CIELab.jpg',img_CIELab)
cv2.namedWindow('HSV_Space',0)
cv2.namedWindow('CIELab_Space',0)
cv2.imshow('RGB_Space',img_rgb)
cv2.imshow('HSV_Space',img_hsv)
cv2.imshow('CIELab_Space',img_CIELab)
cv2.waitKey(0)

运行结果如下:
RGB、HSV、CIELab颜色空间转换结果
具体如下所示:
HSV空间:
在这里插入图片描述
CIELab空间:
在这里插入图片描述

BUG:不晓得咋回事儿,原来的RGB图片上传不上去。。。。大家将就着看运行结果中的RGB图像吧。。。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值