【发布时间】:2018-10-31 03:42:58
【问题描述】:
我有这些列表包含 RGB 格式的蓝色值。
low = [
[0, 0, 128],
[65, 105, 225],
[70, 130, 180],
[72, 61, 139],
[83, 104, 120]
]
我想做的是:将所有值从例如第一个列表从 RGB 转换为 HSV。
我编写了这段代码:
import cv2
import numpy as np
for v in low:
rgb = np.uint8([[v]])
print("RGB: ", rgb)
hsv = cv2.cvtColor(rgb, cv2.COLOR_RGB2HSV)
print("HSV: ", hsv)
print("\n")
问题是当我去检查颜色(RGB-HSV)是否相同时。在这里我发现不是。
让我们从low 列表中取出最后一个值。
RGB: [[[ 83 104 120]]]
HSV: [[[103 79 120]]]
RGB 是 RGB 输入值,HSV 是输出。但这最后一个颜色与 RGB 不同。首先是蓝色阴影,最后是绿色。为什么?
我使用this tool 来检查值。它还说这个 RGB 的正确 HSV 应该是205, 30, 47。
我的错误在哪里?
【问题讨论】:
-
获得答案的机会与所提供代码的质量有关。见minimal verifyable complete example。 - 我们不需要 500 种颜色来查看行为。另外:您缺少进口商品(例如 cv2)?请编辑并缩小您的代码,谢谢。
-
Found this...希望能有所帮助
-
您用于验证的工具的色调范围为 [0,359],饱和度和数值范围为 [0,100]。 OpenCV 的 HSV 范围是 [0,179] 的色调,[0,255] 的饱和度和值。