Opencv Python 简明教程

OpenCV Python - Color Spaces

色彩空间是一个数学模型,描述了如何表示颜色。它在特定的、可测量的、固定的可能颜色和亮度值范围内描述了颜色。

OpenCV 支持以下知名的色彩空间 −

  1. RGB Color space − 它是一种加色空间。通过组合红色、绿色和蓝色色彩值来获取颜色值。每个值由介于 0 到 255 之间的一个数字表示。

  2. HSV color space − H、S 和 V 分别代表色相、饱和度和明度。这是一种替代 RGB 的色彩模型。该模型应该更接近人眼感知颜色的方式。色相值在 0 到 179 之间,而 S 和 V 值在 0 到 255 之间。

  3. CMYK color space − 与 RGB 不同,CMYK 是一种减色模型。字母分别代表青色、品红色、黄色和黑色。白色光减去红色得到青色,白色减去绿色得到品红色,白色减去蓝色得到黄色。所有值都以 0 到 100% 的比例表示。

  4. CIELAB color space − LAB 色彩空间有三个分量,分别是代表亮度的 L、从绿色到洋红色的颜色分量 A 和从蓝色到黄色的分量 B。

  5. YCrCb color space − 在此处,Cr 代表 R-Y,Cb 代表 B-Y。这有助于将亮度从色度分离到不同的通道中。

OpenCV 支持使用 cv2.cvtColor() 函数在色域之间转换图像。

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

cv.cvtColor(src, code, dst)

Conversion Codes

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

Sr.No.

Conversion Code & Function

1

cv.COLOR_BGR2BGRA 向 RGB 或 BGR 图像添加 Alpha 通道。

2

cv.COLOR_BGRA2BGR 从 RGB 或 BGR 图像中移除 Alpha 通道。

3

cv.COLOR_BGR2GRAY 在 RGB/BGR 和灰度之间转换。

4

cv.COLOR_BGR2YCrCb Convert RGB/BGR to luma-chroma

5

cv.COLOR_BGR2HSV Convert RGB/BGR to HSV

6

cv.COLOR_BGR2Lab 将 RGB/BGR 转换为 CIE Lab

7

cv.COLOR_HSV2BGR 后退转换 HSV 到 RGB/BGR

Example

以下程序显示了将原始图像从 RGB 色彩空间转换为 HSV 和 Gray 方案的过程 −

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)

Output

rgb color space
gray color space
hsv color space