模板匹配返回零

时间:2018-04-07 19:55:31

标签: python opencv templates image-processing template-matching

我只是通过使用opencv与方法cv2.TM_CCOEFF_NORMED进行模板匹配。不同之处在于参考图像和扭曲图像都被分成小块,例如128x108分辨率。一般来说,它运作良好,但有时它返回零,即使两件几乎相同。下面是一个示例图像对,其中一个有一行" 1"强度,但所有其他值都为零。这个例子有没有特定原因导致它失败?也许是因为图像分辨率低?

提前致谢。

grab_image

ref_image

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()

0 个答案:

没有答案