Os métodos correspondentes para matchTemplate() em opencv “cv2.TM_CCORR_NORMED” e “cv.CV_COMP_BHATTACHARYYA” fornecem a mesma medida
-
21-12-2019 - |
Pergunta
Olá, gostaria de informar que há algum problema nos métodos openCV matchTemplate().De acordo com o livro, o coeficiente bhattacharya é totalmente diferente da correlação cruzada normalizada, mas quando tentei esse pedaço de código, obtive a mesma distância em todos os lugares para cada imagem. Alguém pode levar este aviso aos desenvolvedores do opencv e tentar dizer por que isso aconteceu.Eu estava tentando encontrar a medida de distância usando esses dois métodos
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
Solução
não admira.
além de CV_COMP_BHATTACHRYYA não ser um sinalizador de comparação válido para matchTemplate ,
tanto CV_COMP_BHATTACHARYYA quanto TM_CCORR_NORMED resolvem para o mesmo valor enum 3 nos bastidores.
então basicamente você está fazendo a mesma coisa duas vezes.