Соответствие шаблона возвращает ноль
Я просто использую сопоставление шаблонов с методом cv2.TM_CCOEFF_NORMED с использованием opencv. Разница в том, что и эталонное изображение, и деформированное изображение делятся на маленькие части для разрешения 128х108. Как правило, он работает хорошо, но иногда он возвращает ноль, даже если обе части почти одинаковы. Ниже приведены примерные пары изображений, одна из которых имеет линию с интенсивностью "1", но все остальные значения равны нулю. Есть ли конкретная причина, почему это не удается в этом примере? Может из-за низкого разрешения изображений?
Заранее спасибо.
import cv2
import numpy as np
np.set_printoptions(threshold='nan')
def main():
img_ref = cv2.imread('folderoftheimage')
img_grab = cv2.imread('folderoftheimage')
max_val_array = []
template_matching_array = []
# Apply template Matching
res = cv2.matchTemplate(img_ref,img_grab,cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
max_val_array.append(max_val)
print "min_val", min_val
print "max_val", max_val
print "min_loc", min_loc
print "max_loc", max_loc
template_matching_array.append(np.min(max_val_array))
index_min = max_val_array.index(np.min(max_val_array))
print "template matching", template_matching_array
print "zero element", index_min
main()