常见的颜色模型与转换公式

不同的颜色模型

常见的图像颜色模型:RGB模型、YUV模型、HSV模型、Lab模型、GRAY模型。

RGB模型:红色(Red)、绿色(Green)和蓝色(Blue)。在RGB颜色模型中,所有的颜色都是由这三种颜色通过不同比例的混合得到,如果三种颜色分量都为0,则表示为黑色,如果三种颜色的分量相同且都为最大值,则表示为白色。在这个模型的基础上增加第四个通道即为RGBA模型,第四个通道表示颜色的透明度,当透明度都是1的时候,RGBA模型就会退化成RGB模型。

YUV模型:亮度(Y),红色分量与亮度的信号差值(U),蓝色与亮度的差值(V)。YUV模型是电视信号系统所采用的颜色编码方式,主要用于视频和图像的传输。RGB模型与YUV模型之间的转换关系如下,其中RGB取值范围均为0-255。

HSV模型: 色度(Hue),饱和度(Saturation),亮度(Value)。通过名字也可以看出来该模型通过这三个特性对颜色进行描述。相比于RGB模型三个颜色分量与最终颜色联系不直观的缺点,HSV模型更加符合人类感知颜色的方式:颜色、深浅以及亮暗。

色相(0-180)、饱和度(0-255)、亮度(0-255)

Lab模型:弥补了RGB模型的不足,是一种设备无关的颜色模型。在模型中L表示亮度(Luminosity),a和b是两个颜色通道,两者的取值区间都是由-128到+127,其中a通道数值由小到大对应的颜色是从绿色变成红色,b通道数值由小到大对应的颜色是由蓝色变成黄色。其构成的颜色空间是一个球形。

GRAY模型:并不是一个彩色模型,而是一个灰度图像的模型,其命名使用的是英文单词gray的全字母大写。灰度图像只有单通道,灰度值根据图像位数不同由0到最大依次表示由黑到白。常用的RGB模型转成灰度图的方式:

 OpenCV的转换调用

函数原型:

void cv::cvtColor(InputArray src,
                        OutputArray dst,
                        int code,
                        int dstCn = 0
                        )
  • src:待转换颜色模型的原始图像。
  • dst:转换颜色模型后的目标图像。
  • code:颜色空间转换的标志,如由RGB空间到HSV空间。常用标志及含义见下表。
  • dstCn:目标图像中的通道数,如果参数为0,则从src和代码中自动导出通道数

cvtColor()函数颜色模型转换常用标志参数: 

 代码示例:

cvtColor(img32, dstHSV, COLOR_BGR2HSV);
cvtColor(img32, dstYUV, COLOR_BGR2YUV);
cvtColor(img32, dstLab, COLOR_BGR2Lab);
cvtColor(img32, dstgray, COLOR_BGR2GRAY);

【从零学习OpenCV 4】颜色模型与转换 - 知乎

OpenCV: Color conversions

猜你喜欢

转载自blog.csdn.net/u010420283/article/details/128438469