📜  Python中的 Matplotlib.pyplot.hsv()(1)

📅  最后修改于: 2023-12-03 14:46:35.456000             🧑  作者: Mango

python中的 Matplotlib.pyplot.hsv()

hsv()PythonMatplotlib.pyplot 模块中的一个函数,用于将 RGB 颜色空间表示的图像转换为 HSV 颜色空间。该函数可以实现颜色的调整和图像的处理。

函数定义
matplotlib.pyplot.hsv()
语法说明
hsv(arr: ArrayLike) -> np.ndarray

该函数接收一个 ArrayLike 类型的参数 arr,代表待转换的图像数组。函数返回一个 ndarray 类型的三维数组,表示 HSV 颜色空间表示的图像。

参数说明
arr

arr 应该是一维或二维数组,表示待处理的图像。如果 arr 是一维数组,则长度应该为 34,分别对应 RGBRGBA 颜色空间表示的图像;如果 arr 是二维数组,则是一个 (M, N) 的数组,表示 M * N 的像素点的 RGB 颜色空间表示的图像。

返回值说明

该函数返回一个三维数组,大小为 (M, N, 3)(M, N, 4),表示 HSVHSVA 颜色空间表示的图像。数组的第一维和第二维分别对应每个像素点的行和列,第三维是长度为 34 的数组,对应 HSVHSVA 颜色空间表示的像素点。

返回的数组的第三维数据类型是 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()

输出结果为:

hsv.png

图中左侧是 RGB 颜色空间表示的彩色渐变,右侧是 HSV 颜色空间表示的彩色渐变。可以看到,在 HSV 颜色空间中,色相、饱和度和亮度值是分开表示的,其中色相沿着横向渐变,饱和度沿着纵向渐变,亮度值全都设为了 0.5

参考资料