如何使用 OpenCV Python 将 RGB 图像转换为 HSV 图像?
一个RGB(彩色)图像具有三个通道,红色、蓝色和绿色。OpenCV 中的彩色图像具有 [H, W, C] 格式的形状,其中 H、W 和 C 分别是图像的高度、宽度和通道数。所有三个通道的值范围都在0到255之间。
HSV图像也具有三个通道,即色相、饱和度和明度通道。在 OpenCV 中,色相通道的值范围为0到179,而饱和度和明度通道的值范围为 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 图像之间的差异。
广告