Как найти координаты прямоугольников из изображения в Python с помощью opencv? ⇐ Python

Программы на Python
Anonymous
Как найти координаты прямоугольников из изображения в Python с помощью opencv?

Сообщение Anonymous »

У меня есть несколько несовершенных прямоугольников на изображении, мне нужен набор координат для каждого прямоугольника в Python с использованием opencv

Я попробовал обнаружение краев Canny и использовал findContours, но он дает больше координат, чем требуется, потому что прямоугольники не имеют прямых линий.

Я читал подобные вопросы, но не получаю правильных результатов. Можете ли вы предоставить решение с кодом?

исходное изображение
Изображение
После обнаружения края Кэнни
Изображение

Как получить только внутренние границы прямоугольников из Canny Edges? Поскольку у каждого прямоугольника есть двойная граница, получается больше прямоугольников, чем требуется.

image = cv2.imread(OUTPUT_FILE)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray = cv2.blur(gray, (5,5))

kernel = np.ones((5, 5), np.uint8)
closing = cv2.morphologyEx(gray, cv2.MORPH_CLOSE, kernel)

edged = cv2.Canny(closing, 30, 200)
cv2.imshow("Canny", edged)
contours, hierarchy = cv2.findContours(edged, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)

print(len(contours))

for c in contours:
rect = cv2.minAreaRect(c)
box = cv2.boxPoints(rect)

for p in box:
pt = (p[0],p[1])
plt.scatter(p[0],p[1])

plt.show()


Подробнее здесь: https://stackoverflow.com/questions/558 ... ith-opencv

Вернуться в «Python»