Template matching adalah algoritma untuk mencari obyek dengan membandingkan template terhadap image.
Secara sederhana, template matching akan melakukan scaning dan membandingkan dengan template dari awal image hingga akhir.
Berikut contoh sederhana mencari karakter Waldo dalam sebuah image (file waldobeach.jpg) berdasarkan template (file waldo.jpg)
Fungsi yang digunakan adalah cv2.matchTemplate(). Untuk dokumentasi method dari fungsi matchTemplate lihat di https://docs.opencv.org/3.4/de/da9/tutorial_template_matching.html
import cv2 import numpy as np import matplotlib.pyplot as plt %matplotlib inline img = cv2.imread('WaldoBeach.jpg') img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.imshow(img)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) template = cv2.imread('waldo.jpg', 0) res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF) minval, maxval, minloc, maxloc = cv2.minMaxLoc(res) top_left = maxloc bottom_right = (top_left[0]+50, top_left[1]+50) cv2.rectangle(img, top_left, bottom_right, (255,0,0), 3) plt.imshow(img)
Image download di https://drive.google.com/file/d/12SyhYEvr9W4HddZewRxgJ-ueke0wQtT5/view?usp=sharing
File colab di https://colab.research.google.com/drive/17PQbXaNXrvx3U4gNYHRmqr836hFzbzwT?usp=sharing
Kesimpulan
Template matching adalah algoritma yang sangat sederhana. Obyek yang dicari harus sama persis dengan template.