Os métodos correspondentes para matchTemplate() em opencv “cv2.TM_CCORR_NORMED” e “cv.CV_COMP_BHATTACHARYYA” fornecem a mesma medida

StackOverflow https://stackoverflow.com//questions/24035535

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
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top