📅  最后修改于: 2023-12-03 14:46:35.456000             🧑  作者: Mango
python
中的 Matplotlib.pyplot.hsv()
hsv()
是 Python
中 Matplotlib.pyplot
模块中的一个函数,用于将 RGB
颜色空间表示的图像转换为 HSV
颜色空间。该函数可以实现颜色的调整和图像的处理。
matplotlib.pyplot.hsv()
hsv(arr: ArrayLike) -> np.ndarray
该函数接收一个 ArrayLike
类型的参数 arr
,代表待转换的图像数组。函数返回一个 ndarray
类型的三维数组,表示 HSV
颜色空间表示的图像。
arr
arr
应该是一维或二维数组,表示待处理的图像。如果 arr
是一维数组,则长度应该为 3
或 4
,分别对应 RGB
或 RGBA
颜色空间表示的图像;如果 arr
是二维数组,则是一个 (M, N)
的数组,表示 M * N
的像素点的 RGB
颜色空间表示的图像。
该函数返回一个三维数组,大小为 (M, N, 3)
或 (M, N, 4)
,表示 HSV
或 HSVA
颜色空间表示的图像。数组的第一维和第二维分别对应每个像素点的行和列,第三维是长度为 3
或 4
的数组,对应 HSV
或 HSVA
颜色空间表示的像素点。
返回的数组的第三维数据类型是 float32
,值的范围为 [0, 1]
,分别对应 HSV
颜色空间中的色相、饱和度和亮度值,或者 HSVA
颜色空间中的四个通道(第四个通道是透明度值)。
import matplotlib.pyplot as plt
import numpy as np
# 生成一张颜色块图像
img = np.zeros((256, 256, 3), dtype=np.float32)
for i in range(256):
img[:, i, 0] = i / 256.0 # 色相
img[i, :, 1] = i / 256.0 # 饱和度
img[:, :, 2] = 0.5 # 亮度
# 将图像转换为HSV颜色空间
img_hsv = plt.hsv(img)
# 显示结果
fig, ax = plt.subplots(1, 2, figsize=(8, 4))
ax[0].imshow(img)
ax[1].imshow(img_hsv)
plt.show()
输出结果为:
图中左侧是 RGB
颜色空间表示的彩色渐变,右侧是 HSV
颜色空间表示的彩色渐变。可以看到,在 HSV
颜色空间中,色相、饱和度和亮度值是分开表示的,其中色相沿着横向渐变,饱和度沿着纵向渐变,亮度值全都设为了 0.5
。