OpenCV Python 颜色空间

OpenCV Python 颜色空间

颜色空间是描述如何表示颜色的数学模型。它以特定的、可测量的、固定范围的可能颜色和亮度值来描述。

OpenCV支持以下众所周知的颜色空间:

  • RGB颜色空间 -这是一种加法颜色空间。通过组合红、绿和蓝色值来获得颜色值。每个值的范围从0到255。

  • HSV颜色空间 -H、S和V分别代表色调、饱和度和亮度。这是RGB的一种替代色彩模型。该模型应该更接近人眼感知任何颜色的方式。色调值范围从0到179,而S和V数值范围从0到255。

  • CMYK颜色空间 -与RGB相比,CMYK是一种减法颜色模型。英文字母表示青、洋红、黄和黑。白光减去红色得到青色,白光减去绿色得到洋红色,白光减去蓝色得到黄色。所有值都表示在0到100%的范围内。

  • CIELAB颜色空间 -LAB颜色空间有三个分量,分别是L代表亮度,A代表从绿色到洋红的颜色分量,B代表从蓝色到黄色的颜色分量。

  • YCrCb颜色空间 -这里,Cr代表R-Y,Cb代表B-Y。这有助于将亮度从色度分离到不同的通道中。

OpenCV通过 cv2.cvtColor() 函数支持在颜色空间之间进行图像转换。

cv2.cvtColor()函数的命令如下-

cv.cvtColor(src, code, dst)

转换代码

转换由以下预定义的转换代码控制。

序号 转换代码和函数
1 cv.COLOR_BGR2BGRA 给RGB或BGR图像添加alpha通道。
2 cv.COLOR_BGRA2BGR 从RGB或BGR图像中移除alpha通道。
3 cv.COLOR_BGR2GRAY 在RGB/BGR和灰度之间转换。
4 cv.COLOR_BGR2YCrCb 将RGB/BGR转换为亮度-色度。
5 cv.COLOR_BGR2HSV 将RGB/BGR转换为HSV。
6 cv.COLOR_BGR2Lab 将RGB/BGR转换为CIE Lab。
7 cv.COLOR_HSV2BGR 反向转换HSV至RGB/BGR。

示例

下面的程序演示了将原始图像从RGB颜色空间转换为HSV和灰度方案的过程−

import cv2
img = cv2.imread('messi.jpg')
img1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY )
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# Displaying the image
cv2.imshow('original', img)
cv2.imshow('Gray', img1)
cv2.imshow('HSV', img2)

输出

OpenCV Python 颜色空间

OpenCV Python 颜色空间

OpenCV Python 颜色空间

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程