Мне удалось заставить это работать с относительно простым python сценарием для сопоставления нескольких шаблонов объектов.
Я использовал следующее изображение в качестве шаблона.jpg
Я написал сценарий следующим образом
import cv2
import numpy as np
#load image into variable
img_rgb = cv2.imread('scan.jpg')
#load template
template = cv2.imread('template.jpg')
#read height and width of template image
w, h = template.shape[0], template.shape[1]
res = cv2.matchTemplate(img_rgb,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where( res >= threshold)
for pt in zip(*loc[::-1]):
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,255,0), 2)
img_rgb = cv2.resize(img_rgb,(800,600))
cv2.imshow("result",img_rgb)
cv2.waitKey(10000)
Это дало результат как
Однако , если размер этих черных наклеек не является более или менее постоянным , вы можете использовать многоуровневый подход к сопоставлению с шаблоном .