如何使用Python和OpenCV将彩色图像转换为HLS?


彩色(RGB)图像具有三个通道:红色、蓝色和绿色。在OpenCV中,彩色图像的形状为[H, W, C]格式,其中H、W和C分别表示图像的高度、宽度和通道数。所有三个通道的值范围都在0255之间。

HLS图像也具有三个通道:色相 (Hue)、亮度 (Lightness)饱和度 (Saturation)通道。在OpenCV中,色相通道的值范围为0179,而亮度和饱和度通道的值范围为0255

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图像之间的颜色差异。

更新于:2022年9月27日

3K+ 浏览量

开启您的职业生涯

完成课程获得认证

开始学习
广告