如何使用Python和OpenCV將彩色影像轉換為HLS?
彩色(RGB)影像具有三個通道:紅色、藍色和綠色。在OpenCV中,彩色影像的形狀為[H, W, C]格式,其中H、W和C分別表示影像的高度、寬度和通道數。所有三個通道的值範圍都在0到255之間。
HLS影像也具有三個通道:色相 (Hue)、亮度 (Lightness)和飽和度 (Saturation)通道。在OpenCV中,色相通道的值範圍為0到179,而亮度和飽和度通道的值範圍為0到255。
在OpenCV中,使用cv2.imread()函式載入的彩色影像始終為BGR格式。要將BGR影像轉換為HLS影像,我們使用cv2.cvtColor()函式。此函式用於將影像從一個顏色空間轉換為另一個顏色空間。此函式採用兩個引數:第一個是輸入影像,第二個是顏色轉換方法。
語法
cv2.cvtColor()的語法如下:
cv2.cvtColor(bgr_img, cv2.COLOR_BGR2HLS)
要將RGB影像轉換為HLS影像,請按照以下步驟操作。
步驟
匯入所需的庫。在以下所有Python示例中,所需的Python庫是OpenCV。確保您已安裝它。
import cv2
使用cv2.imread()讀取輸入RGB影像。使用此方法讀取的RGB影像為BGR格式。可以選擇將讀取的BGR影像賦值給bgr_img。
bgr_img = cv2.imread('water.jpg')
現在,使用cv2.cvtColor()函式將此BGR影像轉換為HLS影像。可以選擇將轉換後的HSV影像賦值給hls_img。
hls_img = cv2.cvtColor(bgr_img, cv2.COLOR_BGR2HLS)
最後,顯示轉換後的HLS影像。
cv2.imshow('HLS image', hls_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
讓我們來看一些示例,以便更好地理解它是如何完成的。
示例1
在這個程式中,我們將看到如何對輸入影像執行仿射變換。
# import required libraries import cv2 # read RGB image, the input image is in BGR format img_bgr = cv2.imread('bike.jpg') # convert the BGR image to HLS img_hls = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HLS) # Display the converted HLS image cv2.imshow('HLS Image', img_hls) cv2.waitKey(0) cv2.destroyAllWindows()
我們將使用此影像(bike.jpg)作為此程式的輸入檔案:

執行上述Python程式後,將生成以下輸出視窗:

注意輸入影像和轉換後的HLS影像之間的顏色差異。
示例2
讓我們來看另一個例子:
import cv2 # read RGB image, the image is in BGR format img = cv2.imread('tutpoint.png') # convert the BGR image to HLS img_hls = cv2.cvtColor(img, cv2.COLOR_BGR2HLS) # Display the converted HLS image cv2.imshow('HLS Image', img_hls) cv2.waitKey(0) cv2.destroyAllWindows()
將以下影像(tutpoint.png)作為此程式的輸入檔案:

執行上述Python程式後,將生成以下輸出視窗:

注意輸入影像和轉換後的HLS影像之間的顏色差異。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP