Обнаружение линии OpenCV в целом

Я новичок в opencv (в C ++), и я пытаюсь реализовать обнаружение строк.

У меня есть картинка с парой линий, и я пытаюсь определить расстояние между линиями. Я знаю, что есть Hough, Canny и так далее, но как я могу получить координаты различных линий, чтобы вычислить расстояние между линиями? Должен ли я использовать контурные функции opencv или есть лучшие способы? Мне не нужны полные примеры кода, но кто-нибудь может сказать мне лучший способ сделать работу?

6

Решение

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

Если у вас есть параллельные линии, использование

void HoughLines(InputArray image, OutputArray lines, double rho, double theta, int threshold, double srn=0, double stn=0 )

для обнаружения строк, где второй параметр будет содержать обнаружение:

линии — выходной вектор линий. Каждая строка представлена
двухэлементный вектор (ρ, θ). ρ — расстояние от координаты
origin (0, 0) (верхний левый угол изображения). θ — поворот линии
угол в радианах (0 ∼ вертикальная линия, π / 2 ∼ горизонтальная линия).
[Opencv2refman.pdf]

Это означает, что расстояние между двумя линиями должно быть abs(rho1-rho2)что расстояния представляют собой абсолютные различия между значениями пикселей в первом столбце lines, (Примечание: метод должен быть CV_HOUGH_STANDARD Вот!)

За непараллельные линии Вы должны определить то, что вы считаете расстоянием, но тогда OpenCV может по-прежнему предоставлять вам координаты конечных точек каждой обнаруженной линии.
Вы просто должны использовать method = CV_HOUGH_PROBABILISTIC,

CV_HOUGH_PROBABILISTIC вероятностное преобразование Хафа (более эффективное
в случае, если изображение содержит несколько длинных линейных сегментов). Это
возвращает сегменты линии, а не всю линию. Каждый сегмент
представлены начальными и конечными точками, а матрица должна быть
созданная последовательность будет) типа CV_32SC4.
[Opencv2refman.pdf]

Вы также можете найти учебник в opencv_tutorials.pdf в документации вашего установленного OpenCV.

13

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]