我正在尝试获取某些颜色的边界。我使用 GIMP 获取上下边界。
我从 OpenCV 文档中阅读了下一篇:
'对于 HSV,色调范围为 [0,179],饱和度范围为 [0,255],值范围为 [0,255]。不同的软件使用不同的尺度。因此,如果您将 OpenCV 值与它们进行比较,则需要对这些范围进行归一化”
所以,我正在尝试规范化这些范围,以便将它们与 GIMP 进行比较。这是代码:
# z = (xi - min(x)) / (max(x) - min(x))
# where x=(x1,...,xn) and zi is now your i normalized data.
def norm_H_value(h):
return (h - 0) / (179 - 0)
def norm_SV_values(x):
return (x-0) / (255 - 0)
我不确定这是否是标准化这些范围的正确方法,因此,如果您能帮助我或提供一些建议,那就太好了。
最佳答案
使用以下等式将 GIMP HSV 值转换为 OpenCV 值
GIMP取值范围: H:0 -> 360,S:0 -> 100,V:0 -> 100
OpenCV取值范围: H:0 -> 180,S:0 -> 255,V:0 -> 255
opencv_H = (gimp_H / 360) * 180; // (gimp_H / 2)
opencv_S = (gimp_S / 100) * 255;
opencv_V = (gimp_V / 100) * 255;
关于python - 如何标准化 HSV 值。 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44187690/