如何使用 OpenCV Python 将 RGB 图像转换为 HSV 图像?


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

HSV图像也具有三个通道,即色相饱和度明度通道。在 OpenCV 中,色相通道的值范围为0179,而饱和度明度通道的值范围为 0 到 255。

OpenCV中,要将RGB图像转换为HSV图像,我们使用 cv2.cvtColor() 函数。此函数用于将图像从一个颜色空间转换为另一个颜色空间。

此函数接受两个参数 - 第一个是输入图像,第二个是颜色转换方法。请参见下面给出的语法 -

cv2.cvtColor(bgr_img, cv2.COLOR_BGR2HSV)

步骤

要将 RGB 图像转换为 HSV 图像,请按照以下步骤操作 -

导入所需的库。在所有以下 Python 示例中,所需的 Python 库是OpenCV。确保您已安装它。

import cv2

使用 cv2.imread() 读取输入 RGB 图像。使用此方法读取的 RGB 图像采用 BGR 格式。可以选择将读取的 BGR 图像分配给bgr_img

bgr_img = cv2.imread('water.jpg')

现在使用cv2.cvtColor()函数将此 BGR 图像转换为 HSV 图像,如下所示。可以选择将转换后的 HSV 图像分配给hsv_img

hsv_img = cv2.cvtColor(bgr_img, cv2.COLOR_BGR2HSV)

显示上面转换后的 HSV 图像。

cv2.imshow('HSV image', hsv_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输入图像

我们将在以下示例中使用此图像作为输入文件。

示例

此 Python 程序将 RGB 图像转换为 HSV 图像。

import cv2 # read the input RGB image as BGR format bgr_img = cv2.imread('water.jpg') # Convert the BGR image to HSV Image hsv_img = cv2.cvtColor(bgr_img, cv2.COLOR_BGR2HSV) cv2.imwrite('hsv_image.jpg', hsv_img) # Display the HSV image cv2.imshow('HSV image', hsv_img) cv2.waitKey(0) cv2.destroyAllWindows()

输出

运行以上程序时,将产生以下输出 -

注意原始 RGB 图像和 HSV 图像之间的差异。

更新于: 2022年9月27日

22K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告