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

opencvpythonserver side programmingprogramming

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

HLS 图像也有三个通道,即 色调、亮度饱和度 通道。在 OpenCV 中,色调通道的值范围为 0179,而亮度和饱和度通道的值范围为 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 图像之间的颜色差异。


相关文章