opencv 中 matchTemplate() 的匹配方法" cv2.TM_CCORR_NORMED"和 "cv.CV_COMP_BHATTACHARYYA"给出相同的度量



嗨,我想提请您注意,在openCV matchTemplate()方法中存在一些问题。根据书上的bhattacharya系数与归一化交叉相关完全不同,但是当我尝试这段代码时,我得到了每个图像的相同距离。谁能把这个通知带给openv开发者,并试着告诉他们为什么会发生这种情况?我试图用这两种方法找到距离测量

path1 = 'D:/cat1.png'
path2 = 'D:/cat2.png'
im1=cv2.imread(path1, cv2.CV_LOAD_IMAGE_GRAYSCALE)
im2=cv2.imread(path2, cv2.CV_LOAD_IMAGE_GRAYSCALE)
result = cv2.matchTemplate(im1,im2,cv.CV_COMP_BHATTACHARYYA) #Bhattacharya Coefficient
result2=cv2.matchTemplate(im1,im2,cv2.TM_CCORR_NORMED)       #Normalized Cross Correlation
print"BCC :",result
print 'n'
print"NCC :",result2

难怪

除了CV_COMP_BHATTACHARYYA不是matchTemplate的有效比较标志外,

CV_COMP_BHATTACHARYYA和tm_ccorr_norm在底层都解析为相同的enum值3。

基本上你做了两次同样的事情

最新更新