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)

輸出

RGB Color Space

RGB Color Space

RGB Color Space
廣告

© . All rights reserved.