Какой самый простой * правильный * метод для обнаружения прямоугольников на изображении? - PullRequest
6 голосов
/ 15 декабря 2011

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

Моя первоначальная мысль состоит в том, чтобы использовать преобразование Хафа для линий и выбирать комбинации линий, в которых две линии пересекаются в нижней и верхней частях одинаковыми двумя линиями, но это не достаточно.

Будет ли использоваться угловой детектор вместе с преобразованием Хафа?

Ответы [ 3 ]

5 голосов
/ 15 декабря 2011

Проверьте /samples/c/squares.c в вашем дистрибутиве OpenCV. Этот пример предоставляет квадратный детектор, и это должно быть довольно хорошее начало.

Мой ответ здесь также применяется.

3 голосов
/ 15 декабря 2011

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

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

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

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

1 голос
/ 17 декабря 2011

Есть расширение Hough, которое может быть полезным.
http://en.wikipedia.org/wiki/Generalised_Hough_transform

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...