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