Я работал над вариантом образца opensv squares, чтобы обнаружить прямоугольники. Он отлично работает для закрытых прямоугольников, но мне было интересно, какие подходы я могу предпринять, чтобы обнаружить прямоугольники с отверстиями, т. Е. Отсутствующие углы, слишком короткие линии.Обнаружение неполных прямоугольников (отсутствующих углов/коротких контуров) в OpenCV
Выполняю некоторую дилатацию, которая закрывает небольшие промежутки, но не эти большие.
Я рассмотрел использование выпуклой оболочки или ограничивающего прямоугольника для создания контура для сравнения, но поскольку края прямоугольника отсоединены, каждый из них будет считываться как отдельный контур.
Я думаю, что первый шаг - определить, какие линии являются кандидатами для формирования полного прямоугольника, а затем выполнить некоторую экстраполяцию строк. Это seems promising, но мои прямоугольники не будут располагаться идеально горизонтально или вертикально.
Я пытаюсь обнаружить три левых прямоугольников в этом образе:
Это 2 проблемы: 1. обнаружить сегменты линий, которые не являются идеальными линиями. 2. Групповые сегменты, возможно, заканчиваются прямоугольником. – Micka
У вас есть предложения по борьбе с обнаружением несовершенных сегментов линии? Я пробовал HoughLines/HoughLinesP, которые, похоже, не работают, я думаю, что они нацелены на более совершенные линии. Мое текущее мышление состоит в том, чтобы проанализировать контуры для # точек и некоторого вида области для коэффициента длины дуги, чтобы догадаться, в какой «части» прямоугольника – muscovy
для контуров вы можете попробовать PCA. но это не удастся для подключенных угловых частей прямоугольника ... Мне нравятся методы RANSAC, но вам придется реализовать их самостоятельно. – Micka