为什么计算距离时结果大于1.0?

问题描述

我想计算两个像素之间的距离。我在HSV中转换了输入图像:

image = cv2.imread('img.jpg')    
HSV_img = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)

我读到HSV的cv2范围是[0,179],[0,255],[0,255]。为了计算两个像素之间的距离,我编写了函数

def calculate_distance(pixel1,pixel2):
    h1,h0 = pixel1[0],pixel2[0]
    s1,s0 = pixel1[1],pixel2[1]
    v1,v0 = pixel1[2],pixel2[2]
    dh = abs(h1 - h0) / 180
    ds = abs(s1 - s0) / 255
    dv = abs(v1 - v0) / 255
    return math.sqrt(dh**2 + ds**2 + dv**2)

我用像素1的[90 44 70]和像素2 [84 48 79]的值测试该函数,结果为1.3841817967462495。为什么结果大于1.0?我如何重写函数以使距离在[0,1]中?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)