У меня есть фотография, где человек держит лист бумаги. Я хотел бы определить прямоугольник этого листа бумаги.OpenCV: Можно ли определить прямоугольник из углов?
Я попытался следующие различные учебники из OpenCV и различных SO ответы и примеры кода для обнаружения квадратов/прямоугольников, но проблема в том, что все они опираются на контуры какой-то.
Если я следую за squares.cpp
примером, я получаю следующие результаты из контуров:
Как вы можете видеть, пальцы являются частью контура, поэтому алгоритм не находит квадрат.
Я тоже пытался использовать HoughLines()
подход, но я получить аналогичные результаты выше:
я могу обнаружить углы, надежно, хотя:
Есть другие углы на изображении, но я ограничиваю общие углы, найденные < 50, а углы для листа бумаги - всегда найдено.
Есть ли алгоритм поиска прямоугольника из нескольких углов в изображении? Кажется, я не вижу существующего подхода.
В принципе, вы хотите, чтобы контуры, кормить их 'appoxPolyDP()', а затем проверить полученный 'approxCurve' размер. Если это 4, у вас есть четырехугольник, и это ваши углы. Вероятно, вам придется снова упорядочить порядок углов, так как заказ не гарантируется. Дай мне знать, если тебе еще понадобится помощь. – MeetTitan
Я пробовал это, но контуры пальцев ломают боковые края листа бумаги и appoxPolyDP не находит его тогда. –
Тогда я не уверен.Не могли бы вы перебрать контуры с углом 90 °? – MeetTitan