Template Matching in OpenCV

In this OpenCV Tutorial, you’ll learn how to perform template matching in OpenCV Python. I highly recommend you get the “Computer Vision: Models, Learning, and Inference Book” to learn computer vision. We will use the following two images for template matching.

img
img_2
# Import the required libraries
import cv2
import numpy as np

# Read an image
img = cv2.imread("C:\\aihints\\cartoon.jpg")

# Read template image
img_2 = cv2.imread("C:\\aihints\\part.jpg")

# Get width and height of template image
width, height = img_2.shape[:-1]

# Template matching
tm = cv2.matchTemplate(img, img_2, cv2.TM_CCOEFF_NORMED)

# Set a Threshold
threshold = 0.8

# Store the coordinates of matched area in a numpy array
area = np.where(tm >= threshold)

# Draw a rectangle around the matched region.
for i in zip(*area[::-1]):
    cv2.rectangle(img, i, (i[0] + width, i[1] + height), (255, 0, 0), 1)

# Display the template matching image
cv2.imshow('Template Matching', img)

# Save the template matching image
cv2.imwrite('C:\\AiHints\\template_matching.jpg', img)

# Wait until any key is pressed
cv2.waitKey(0)

# Close all the windows
cv2.destroyAllWindows()

Output:

template matching
template_matching

Leave a Comment

Your email address will not be published.