C/C++教程

计算机视觉OpenCv学习笔记--第三篇 色彩空间类型转换

本文主要是介绍计算机视觉OpenCv学习笔记--第三篇 色彩空间类型转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

3 色彩空间类型转换

RGB图像是常见的色彩空间类型,除此之外常见的色彩空间还有GRAY(灰度图像)、XYZ色彩空间、YCrCb色彩空间、HSV色彩空间、HLS色彩空间等。每种不同的色彩空间擅长处理的问题不同,在实际操作中经常需要用到色彩空间类型转换。
色彩空间类型转换是指,将图像从一个色彩空间转换到另一个色彩空间。例如,进行图像的特征提取、距离计算时,往往先将图像从RGB转换为灰度色彩空间,在一些应用中,可能要将色彩空间的图像转换为二值图像。

3.1 色彩空间的基础

3.1.1 GRAY 色彩空间
当图像由RGB色彩空间转换为GRAY色彩空间时,处理方式如下:
Gray=0.299R+0.587G+0.114*B
当图像由GRAY色彩空间转换为RGB色彩空间时,最终所有通道都相同,处理方式如下:
R,G,B=Gray;
3.1.2 XYZ色彩空间
XYZ色彩空间是由CIE(International Commission on Illumination)定义的,更便于计算的色彩空间。
将RGB和XYZ互相转换的形式为:
在这里插入图片描述
在这里插入图片描述

3.1.3YCrCb色彩空间
人眼视觉系统(HVS,Human Visual System)对颜色的敏感度要地域对亮度的敏感度。
在YCrCb色彩空间中,Y代表光源亮度,色度信息保存在Cr和Cb,其中Cr表示红色分量信息,Cb表示蓝色分量信息。
RGB与YCrCb色彩空间的转换公式为:
Y=0.299·R+0.587·G+0.114·B
Cr=(R-Y)*0.713+delta
Cb= (B-Y)*0.564+delta
delta的值为:
在这里插入图片描述

3.1.4HSV色彩空间
RGB是从硬件的角度提出的颜色,HSV色彩空间是一种面向视觉感知的颜色模型。HSV色彩指出人眼色彩知觉主要包含三要素:色调(Hue,也称为色相)、饱和度(Saturation)、亮度(Value),色调指光的颜色,饱和度是色彩的深浅成都,亮度指人眼感受到的光的明暗程度。
3.1.5 HLS色彩空间
HLS色彩空间的三要素是色彩H(Hue)、光亮度/明度L(Lightness)、饱和度(Saturation)。
与HSV色彩空间类似,只是HLS色彩空间用“光亮度/明度(Lightne ss)"替换了”亮度(Value)
3.1.6 CIELab 色彩空间*
CIELab* 色彩空间是均匀色彩空间模型,它是面向视觉感知的颜色模型。
CIELab色彩空间中的L分量用于表示像素的亮度,取值范围是[0,100],表示从纯黑到纯白;a分量表示从红色到绿色的范围,取值范围是[-127,127];b分量表示从黄色到蓝色的范围,取值范围是[-127,127]。
**3.1.7 CIEL
uv 色彩空间**
CIEL
uv色彩空间也是均匀色彩模型。CIELuv*色彩空间与设备无关,适用于显示器显示和根据加色原理进行组合的场合,该模型中比较强调对红色的表示,对红色的变化比较敏感,但蓝色的变化不太敏感。
3.1.8 Bayer色彩空间
Bayer色彩空间(Bayer模型)被广泛应用在CCD和CMOS相机中。

3.2 类型转换函数

OpenCV中,使用cv2.cvtColor()函数实现色彩空间的变换。语法格式为:

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

其中,dst表示输出图像,与原始图像具有同样的数据类型和深度。src表示原输入图像。code是色彩空间转化码。dstCn是目标图像的通道数。如果参数值为默认0,则通道数自动通过原始输入图像和code得到。
颜色空间的转换都用到了如下约定:
8位图像值的范围是[0,255]
16位图像值的范围是[0,65535]
浮点数图像值的范围是[0.0~1.0]
非线性的类型转换,RGB图像必须归一化到其对应的取值范围内。

3.3alpha通道

在RGB色彩空间的三个通道的基础上,还可以加上一个A通道,也叫alpha通道,表示透明度。这种4个通道的色彩空间被称为RGBA色彩空间。PNG图像就是典型的4通道图像。alpha通道的复制范围是[0,1],或者[0,255],表示从透明到不透明。

这篇关于计算机视觉OpenCv学习笔记--第三篇 色彩空间类型转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!