I am having issues with the template matching. The code is working for a simpler source image and template image. However, for the image in question I see incorrect match location. I have tried tweaking the code, however, I end up with incorrect match. Thank You for your time.
[pfizertemplate.png]
pfizersource.jpg
import numpy as np
import cv2
import subprocess
# Assign template and target images
image = cv2.imread('pfizersource.jpg')
template = cv2.imread('pfizertemplate.png')
# Resize images
image = cv2.resize(image, (0, 0), fx=0.5, fy=0.5)
template = cv2.resize(template, (0, 0), fx=0.5, fy=0.5)
# Convert to grayscale
imageGray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
templateGray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)
# Find template
result = cv2.matchTemplate(imageGray, templateGray, cv2.TM_CCOEFF)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
top_left = max_loc
h, w = templateGray.shape
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(image, top_left, bottom_right, (0, 0, 255), 4)
# Show result
cv2.imshow("Result", image)
cv2.imshow("Template", template)
cv2.moveWindow("Template", 10, 50);
cv2.moveWindow("Result", 150, 50);
print(top_left)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)
I tried with different methods and it still does not work
methods = ['cv2.TM_CCOEFF', 'cv2.TM_CCOEFF_NORMED', 'cv2.TM_CCORR', 'cv2.TM_CCORR_NORMED', 'cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED']
tech_taco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.