如何使用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图像之间的差异。