📜  将 numpy 数组转换为 HSV cv - Python (1)

📅  最后修改于: 2023-12-03 15:25:14.470000             🧑  作者: Mango

将 NumPy 数组转换为 HSV (Hue, Saturation, Value) cv - Python

在计算机视觉和图像处理中,HSV 是一种常用的颜色空间,可以更好地描述颜色的特征。常常需要将 RGB 颜色空间的图像转换为 HSV 颜色空间的图像进行分析。

在 Python 的 OpenCV 中,可以使用以下代码将 NumPy 数组转换为 HSV 格式:

import cv2
import numpy as np

# 创建一个随机的 NumPy 数组
img = np.random.randint(0, 256, size=(50, 50, 3)).astype(np.uint8)

# 将 RGB 数组转换为 HSV 格式
hsv_img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)

# 打印出 RGB 和 HSV 的数组
print("RGB Image:")
print(img)
print("\nHSV Image:")
print(hsv_img)

上述代码创建了一个随机的 NumPy 数组,并将其转换为 HSV 格式。可以使用 cv2.cvtColor() 方法,在 OpenCV 中进行颜色空间转换。

输出结果:

RGB Image:
[[[192  65 118]
  [ 15   9 229]
  [ 44 183  27]
  ...
  [ 11 242 145]
  [ 83  36 120]
  [ 98 101 107]]

 ...

HSV Image:
[[[112 116 192]
  [143 243 229]
  [ 81 188 183]
  ...
  [ 97  58 242]
  [131 228  83]
  [ 99  36 107]]

 ...

上述代码中,img 是一个随机创建的 50x50x3 的 RGB 图像,使用 cv2.cvtColor() 将其转换为一个 50x50x3 的 HSV 图像,并将其打印出来。

注意,输出的 HSV 数组中的每个值都与 RGB 数组中的值具有不同的表示方式。HSV 中的 H(色调) 的范围为 [0, 180],S(饱和度) 和 V(明度) 的范围为 [0, 255]。HSV 是一种更为直观的颜色表示方式,适合用来进行图像处理和分类。