Есть нейросеть, которая классифицирует изображения дорожных знаков 200х200
Как теперь найти эти знаки на изображении 1920х1080? Пробовал обрезать по контурам, но вместе со знаками сохраняется еще и всякий мусор.
import cv2
from PIL import Image
image = cv2.imread("C:/Users/pikro/PycharmProjects/ML/road_sign/test.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edged = cv2.Canny(image, 10, 200)
_, cnts, _ = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
idx = 0
rects = sorted([cv2.boundingRect(c) for c in cnts], key=lambda x: x[0])
for x, y, w, h in rects:
if w > 100 and h > 100:
idx += 1
new_img = image[y - 3:y + h + 3, x - 3:x + w + 3]
cv2.imwrite("C:/Users/pikro/PycharmProjects/ML/road_sign/crop/" + str(idx) + '.png', new_img)
cv2.imshow("im", image)
cv2.waitKey(0)