Соотнесение вектора с краями изображения - PullRequest
1 голос
/ 15 ноября 2011

Я пытаюсь реализовать обнаружение краев при помощи OpenCV.

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

Я использую детектор краев Canny с довольно высоким порогом для определения важных краев в моем изображении. (точнее, я уменьшаю, размываю, преобразую в оттенки серого, затем запускаю Canny). Как я могу вычислить, совпадает ли вектор с ребром в моем изображении? Если у меня есть способ вычисления «выравнивания», мой общий алгоритм сводится к возмущению расположения четырех краевых точек, вычисляя общее «выравнивание» моего многоугольника с краями на изображении, пока я не найду оптимальное значение.

Каков хороший способ определить и вычислить эту метрику "выравнивания"?

1 Ответ

0 голосов
/ 15 ноября 2011

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

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