Python 2.7 使用opencv从SIFT生成以百分比表示的相似性分数
在使用python(2.7.x)和opencv(2.4.9)中的SIFT对两幅图像进行比较之后,我一直在试图找到一种生成相似性分数(单位为%)的方法。我只能找到在匹配之间划清界限的例子。如何进行此操作。在Matlab中有一个与vl_ubcmatch函数等效的opencv 这是一篇文章的摘录Python 2.7 使用opencv从SIFT生成以百分比表示的相似性分数,python-2.7,opencv,sift,Python 2.7,Opencv,Sift,在使用python(2.7.x)和opencv(2.4.9)中的SIFT对两幅图像进行比较之后,我一直在试图找到一种生成相似性分数(单位为%)的方法。我只能找到在匹配之间划清界限的例子。如何进行此操作。在Matlab中有一个与vl_ubcmatch函数等效的opencv 这是一篇文章的摘录 matches=bf。match(des1,des2)匹配两组描述符并返回一个DMatch对象列表。此DMatch对象有四个属性:距离、trainIdx、queryIdx、imgIdx。这些返回值相当于vl_
matches=bf。match(des1,des2)
匹配两组描述符并返回一个DMatch对象列表。此DMatch对象有四个属性:距离、trainIdx、queryIdx、imgIdx。这些返回值相当于vl_ubcmatch函数
我希望你会觉得它有帮助 确切地说,我正在寻找VL_UBCMATCH函数的python实现。你找到了吗?没有,我找不到。一个示例代码真的很有用吗?我需要的是分数。VL_-UBCMATCH除了返回匹配项的score依据外,VL_-UBCMATCH还返回到分数变量的平方欧几里德距离。事实上,当我尝试时,score变量在两个SIFT描述符之间有距离值。分数(:,1)是21647,
sum((int64(da(:,9))-int64(db(:,618))。^2)
是相同的值,其中da(:,9)是ImageA中的第9个SIFT描述符,db(:,618)是ImageB中的第618个SIFT描述符。这不是你想要的输出吗?
# create BFMatcher object
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
# Match descriptors.
matches = bf.match(des1,des2)