如何使用Python在OpenCV中将彩色图像转换为HLS?
彩色(RGB)图像有三个通道,红色、蓝色和绿色。在 OpenCV 中,彩色图像以[H,W,C]格式表示,其中H,W和C分别表示图像的高度、宽度和通道数。所有三个通道的值范围为0到255。
而 HLS 图像也有三个通道,分别是 色调、亮度和饱和度 通道。在 OpenCV 中,Hue通道的取值范围为0到179,而Lightness和Saturation通道的取值范围为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 cv2
# 读取RGB图像,输入图像是BGR格式
img_bgr = cv2.imread('bike.jpg')
# 将BGR图像转换为HLS
img_hls = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HLS)
# 显示转换后的HLS图像
cv2.imshow('HLS Image', img_hls)
cv2.waitKey(0)
cv2.destroyAllWindows()
我们将使用这张图片( bike.jpg )作为这个程序的 输入文件 −
当您运行上述Python程序时,会产生以下 输出 窗口 −
请注意输入图像和转换后的HLS图像之间的颜色差异。
示例2
再来看一个例子 −
import cv2
# 读取RGB图像,该图像为BGR格式
img = cv2.imread('tutpoint.png')
# 将BGR图像转换为HLS
img_hls = cv2.cvtColor(img, cv2.COLOR_BGR2HLS)
# 显示转换后的HLS图像
cv2.imshow('HLS图像', img_hls)
cv2.waitKey(0)
cv2.destroyAllWindows()
将以下图像 ( tutpoint.png ) 作为 输入文件 运行此程序-
运行以上Python程序后,它将生成以下 输出 窗口-
注意输入图像和转换后的HLS图像之间的颜色差异。