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 代表 RY,Cb 代表 BY。这有助于将亮度和色度分离到不同的通道中。

OpenCV 借助cv2.cvtColor()函数支持颜色空间之间的图像转换。

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

cv.cvtColor(src, code, dst)

转换代码

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

先生。 转换代码及功能
1

CV.COLOR_BGR2BGRA

将 Alpha 通道添加到 RGB 或 BGR 图像。

2

CV.COLOR_BGRA2BGR

从 RGB 或 BGR 图像中删除 Alpha 通道。

3

CV.COLOR_BGR2GRAY

RGB/BGR 和灰度之间进行转换。

4

CV.COLOR_BGR2YCrCb

将 RGB/BGR 转换为亮度-色度

5

变种COLOR_BGR2HSV

将 RGB/BGR 转换为 HSV

6

CV.COLOR_BGR2Lab

将 RGB/BGR 转换为 CIE Lab

7

变种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)

输出

RGB 色彩空间

RGB 色彩空间

RGB 色彩空间