Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算用dog提取的描述符之间的距离_Python_Image Processing_Scikit Image - Fatal编程技术网

Python 计算用dog提取的描述符之间的距离

Python 计算用dog提取的描述符之间的距离,python,image-processing,scikit-image,Python,Image Processing,Scikit Image,我正在尝试匹配我用狗斑点检测得到的补丁。我阅读了Jan Solem关于python计算机视觉的书,我发现: def match(desc1,desc2,threshold=0.5): n = len(desc1[0]) d = -ones((len(desc1),len(desc2))) for i in range(len(desc1)): for j in range(len(desc2)): d1 = (desc1[i]

我正在尝试匹配我用狗斑点检测得到的补丁。我阅读了Jan Solem关于python计算机视觉的书,我发现:

def match(desc1,desc2,threshold=0.5):

    n = len(desc1[0])

    d = -ones((len(desc1),len(desc2)))
    for i in range(len(desc1)):
        for j in range(len(desc2)):
            d1 = (desc1[i] - mean(desc1[i])) / std(desc1[i])
            d2 = (desc2[j] - mean(desc2[j])) / std(desc2[j])
            ncc_value = sum(d1 * d2) / (n-1)
            if ncc_value > threshold:
                d[i,j] = ncc_value
    ndx = argsort(-d)
    matchscores = ndx[:,0]
    return matchscores
如果您使用harris角点检测,这很有用,但使用我的功能会引发ValueError:操作数无法与形状81、0一起广播


我如何为不同的blob检测器实现一个有效的代码,该检测器执行与使用负互相关计算距离相同的操作?

您的代码格式可能错误,我可以更新它吗?是的,很抱歉,我刚刚注意到标识不正确。我会修好的。但是请注意,如果我使用dog blob detection中的blob,即使使用正确的缩进,它也不起作用。请至少提供一些信息:1什么样的线上升值错误?描述1和描述2是什么?签名和形状,如果它们是numpy.arrayIt似乎你不能写sumd1*d2/n-1。。也许你不能做的是d1*d2:d1是一个81的一维数组,d2是一个零len数组???你必须决定你要做什么:如果lendesc1=lendesc2没有太多的意义来计算这样的互相关,但是您必须选择一个desc1窗口,例如,如果它是较大的窗口,则在窗口上进行计算:您可以移动窗口d以查找最佳互相关。