色彩空间类型转换


一.色彩空间基础

色彩空间类型装换是指将图像从一个色彩空间转化到另一个色彩空间。常见的色彩空间包括GRAY色彩空间,XYZ色彩空间,YCrCb色彩空间,HSV色彩空间,HLS色彩空间,CIELab色彩空间,CIELuv*色彩空间,Bayer色彩空间。

1.GRAY色彩空间

灰度图像,通常是8bit灰度级,灰度值范围为0~255。当图像从RGB色彩空间转化为GRAY色彩空间时,标准的转化方式,同时也是Opencv中转化方式如下:

		Gray=0.299*R+0.587*G+0.114*B

有时也可以采用简单的转化方式:

		Gray=(R+G+B)/3

当将灰度图像转化为RGB色彩空间时,最终三个通道值是相等的,都等于灰度图像中的像素值,转化方式:

	B=Gray
	G=Gray
	R=Gray

2.XYZ色彩空间

XYZ色彩空间与RGB色彩空间之间转换非常简单,只需乘一个转换矩阵即可。

3.YCrCb色彩空间

人眼对颜色的敏感度低于对亮度敏感度,在RGB色彩空间中三通道代表三种不同的颜色,三种颜色具有相同的重要性,却忽略了亮度的信息,所以在YCrCb色彩空间中,Y代表亮度信息,Cr代表红色分量,Cb代表蓝色分量。

4.HSV色彩空间

HSV色彩空间分别代表色调(Hue,光的颜色),饱和度(saturation,色彩的深浅),亮度(value,人眼感受到的光的明暗程度)。

二.类型转换函数

在Opencv中,我们使用cv2.cvtColor()函数来实现不同类型的色彩空间转换。语法格式如下:

	dst=cv2.cvtColor(src,code[,dstCn])

参数说明:
dst:输出图像,与输入图像具有同样的规格大小。
src:输入原始图像图像。
code:色彩转换编码。
dstCn:目标图像通道数,一般可以省略,其自动可以得到。

code的一般的格式为cv2.COLOR_(原始图像色彩空间)2(目标图像色彩空间)
如:从RGB色彩空间转化为GRAY色彩空间,编码为cv2.COLOR_BGR2GRAY;
从GRAY转化为BGR,编码为cv2.COLOR_GRAY2BGR。

import cv2
#原始图像为BGR
image_BGR=cv2.imread("color_2.png")
#BGR转换为GRAY
image_GRAY=cv2.cvtColor(image_BGR,cv2.COLOR_BGR2GRAY)
#BGR转化为RGB
image_RGB=cv2.cvtColor(image_BGR,cv2.COLOR_BGR2RGB)
cv2.imshow("BGR",image_BGR)
cv2.imshow("GRAY",image_GRAY)
cv2.imshow("RGB",image_RGB)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:
在这里插入图片描述

三.alpha通道

在常见的RGB三通的基础上还可以加一个A通道,表示透明度。此时的色彩空间被称为RGBA色彩空间。alpha通道的赋值范围为01或1255,从透明到不透明,值越大越不透明。
实例:

import cv2
#原始图像为BGR
image_BGR=cv2.imread("color_2.png")
#转换为BGRA
image_BGRA=cv2.cvtColor(image_BGR,cv2.COLOR_BGR2BGRA)
b,g,r,a=cv2.split(image_BGRA)
a[:,:]=125
bgra_125=cv2.merge([b,g,r,a])
a[:,:]=0
bgra_0=cv2.merge([b,g,r,a])
cv2.imshow("BGR",image_BGR)
cv2.imshow("BGRA_255",image_BGRA)
cv2.imshow("BGRA_125",bgra_125)
cv2.imshow("BGRA_0",bgra_0)
cv2.imwrite("bgra_0.png",bgra_0)
cv2.imwrite("bgra_125.png",bgra_125)
cv2.imwrite("bgra_255.png",image_BGRA)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

在这里插入图片描述
四幅图像基本无差别,但观察存储的三幅图像,差别明显。
bgra_255
在这里插入图片描述
bgra_125
在这里插入图片描述
bgra_0
在这里插入图片描述
bgra_0就什么都看不到,一片白板。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值