Witajcie!
Właśnie tworzę swój mały projekt w Pythonie i natrafiłem na pewien problem. Program operuje na grafice, więc chciałem aby wykrywał pojedyncze elementy na obrazie z szablonu (np. kwadrat wśród obrazka z figurami). Znalazłem taki oto kod wykorzystujący OpenCV do tego procesu:
import cv2
import numpy as np
img_rgb = cv2.imread('mario.png')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('mario_coin.png',0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray,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,0,255), 2)
cv2.imwrite('res.png',img_rgb)
Obraz mario.png to miejsce, gdzie ma zostać wyszukany, że tak to ujmę, mniejszy obraz który nazywa się mario_coin.png (więcej tutaj). Moje pytanie brzmi, jak odczytać koordynaty x i y znalezionego wycinku obrazka w tym większym. Czyli np. kwadrat z pierwszego przykładu jest blisko lewego górnego rogu większego obrazu, to jego koordynaty będą miały wartości np. 12 i 15.
Z góry dzięki za odpowiedź.
PS. Jestem w takich algorytmach zielony, więc jeśli coś źle napisałem to wybaczcie :)