Как найти контуры объекта в Open CV Python
Есть фотография знака на дороге, и есть код, который его выделяет. Как найти у знака контуры, и вырезать его по ним?
import cv2
import numpy as np
znak_image = cv2.imread('znaki.jpg')
print(type(znak_image), znak_image.shape)
low_blue = (116, 32, 7)
high_blue = (133,46,19)
only_znak = cv2.inRange(znak_image, low_blue, high_blue)
cv2.imshow('only znak', only_znak)
cv2.waitKey(0)
znak_hsv = cv2.cvtColor(znak_image, cv2.COLOR_BGR2HSV) #Преобразуем в HSV
znak_color_low = (100, 180, 100)
znak_color_high = (130, 250, 250)
only_znak_hsv = cv2.inRange(znak_hsv, znak_color_low, znak_color_high)
cv2.imshow('znak_color_hsv', only_znak_hsv)
cv2.waitKey(0)
Ответы (1 шт):
Автор решения: hedgehogues
→ Ссылка
Если у Вас есть задача найти контуры знака -- это одна задача. Её можно решить с помощью различных фильтров: canny или так.
Но мне кажется, что Ваша задача в том, чтобы выделить сам знак, о чём Вы и сообщаете. В таком случае, вам нужно решать задачу сегментации. Эта задача совсем другого уровня сложности. Вы можете попробовать придумывать эвристики. Либо воспользоваться поиском по гитхабу или kaggle.