Как найти на изображении определенный объект?

Есть нейросеть, которая классифицирует изображения дорожных знаков 200х200
5dc7fcf66a520545212482.png
5dc7fd01eb043531459996.png
Как теперь найти эти знаки на изображении 1920х1080? Пробовал обрезать по контурам, но вместе со знаками сохраняется еще и всякий мусор.
5dc7fd7583f1d976979995.png

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)
  • Вопрос задан
  • 527 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
жизнь прекрасна в Амстердаме, а в Воронеже gаvно
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы