Сопоставление шаблонов с несколькими объектами OpenCV
Столкнулся с такой проблемой. Как найти похожие объекты на картинке код нашел, как найти координаты этих объектов на картинке не могу найти. Можно найти координаты когда ищем 1 объект методом:
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) # функция для определения координат
a, b = max_loc
Код адаптировал с https://pythonpip.ru/opencv/sopostavlenie-s-shablonom-v-opencv Все работает:
import cv2
import numpy as np
# Загружаем картинку на которой ищем
img_rgb = cv2.imread(r'C:\Users\gundr\Desktop\Sk\Screenshot_13.png') # вписать ваш путь
# преобразовываем её
img_rgb = np.array(img_rgb)
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2HSV)
# загружаем картинку которую ищем
template = cv2.imread(r'C:\Users\gundr\Desktop\Sk\coin1.png')
# высота ширана искомого объекта
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,255,255), 2)
while True:
cv2.imshow('Detected', img_rgb)
key_press = cv2.waitKey(30)
if key_press == ord('q'):
cl_pr = True
break
# ВОПРОС: КАК НАЙТИ КООРДИНАТЫ НАЙДЕННЫХ ОБЪЕКТОВ?
Подскажите пожалуйста, как найти координаты найденных объектов на картинке!
Источник: Stack Overflow на русском