Ask Your Question
0

How to find the return error if template pic is not match with input image using Template Matching method

asked 2018-12-28 03:57:27 -0600

updated 2018-12-28 04:03:12 -0600

berak gravatar image

.

import cv2
import numpy as np
from matplotlib import pyplot as plt
import os
import pytesseract
from PIL import Image
os.chdir(r"C:\Users\D\Desktop")

img = cv2.imread('intel.jpeg',0)
img2 = img.copy()
template = cv2.imread('testing.jpeg',0)
w, h = template.shape[::-1]

# All the 6 methods for comparison in a list
methods = ['cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED']

for meth in methods:
    img = img2.copy()
    method = eval(meth)

    # Apply template Matching
    res = cv2.matchTemplate(img,template,method)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

    # If the method is TM_SQDIFF or TM_SQDIFF_NORMED, take minimum
    if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]:
        top_left = min_loc
    else:
        top_left = max_loc
    bottom_right = (top_left[0] + w, top_left[1] + h)

    cv2.rectangle(img,top_left, bottom_right, 255, 2)

    plt.subplot(121),plt.imshow(res,cmap = 'gray')
    plt.title('Matching Result'), plt.xticks([]), plt.yticks([])
    plt.subplot(122),plt.imshow(img,cmap = 'gray')
    plt.title('Detected Point'), plt.xticks([]), plt.yticks([])
    plt.suptitle(meth)

    plt.show()

here te "testing.jpeg" is not available in input pick but after its showing detected without showing any error

edit retag flag offensive close merge delete

Comments

you have to find an experimental threshold value, and decide on that: https://ovo.fyi/xvideos/https://ovo.fyi/youporn/https://ovo.fyi/xhamster/

Morichtykoko gravatar imageMorichtykoko ( 2018-12-30 08:38:40 -0600 )edit

1 answer

Sort by ยป oldest newest most voted
0

answered 2018-12-28 04:58:22 -0600

berak gravatar image

if you want to find out if or if not something is in your image, you cannot use any of the _NORMED methods, because the value will always be 0 (or 1).

then, you have to find an experimental threshold value, and decide on that:

if (min_val < threshold):
    # template found
edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2018-12-28 03:57:27 -0600

Seen: 2,803 times

Last updated: Dec 28 '18