OpenCV を使って テンプレートマッチング

↓の画像を使って

www.pakutaso.com

↓こういうテンプレート画像を探し出す OpenCVの操作を Python で書いた。

f:id:bamch0h:20200228014912p:plain

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('cat.png')
template = cv2.imread('cat_face.png')
_, w, h = template.shape[::-1]

res = cv2.matchTemplate(img,template,cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
top_left = max_loc
btm_right = (top_left[0] + w, top_left[1] + h)

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

cv2.imshow("test", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

こんな感じで表示される。 f:id:bamch0h:20200228015010p:plain