Deteksi Obyek Menggunakan Template Matching

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.

Sharing is caring:

Leave a Comment