Houghlines2 с неровной линией - PullRequest
0 голосов
/ 09 марта 2012

Я пытаюсь обнаружить линию с линиями houghlines2, но моя линия имеет пикселизацию, и поэтому линии houghlines2 не могут распознать ее как линию.Происходит то, что я обнаруживаю часть строки, но не полную линию - как показано на рисунке красными линиями, заполняющими все больше и больше строки

enter image description here

Я попытался размытьнемного, но пока не повезло.

Код: http://pastebin.com/zmsCFucM

У кого-нибудь есть идеи, как это исправить?Я тоже работал с canny безуспешно.

РЕДАКТИРОВАТЬ

Когда я измеряю линию в краске, скажем, 30^ 2 + длинный ^ 2)).Тогда minLength в houghlines2 probalistic должно быть на порядок меньше.Я думаю, что это моя проблема, и я понятия не имею, почему она должна быть намного короче.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Следующий ответ основан на том, что я понял из вашего вопроса.

так что он обнаруживает две строки вместо одной, верно?Из двух обнаруженных (используйте вероятностный флаг) сравните четыре набора конечных точек линии (в каждой строке будет два).Будет две точки, между которыми расстояние будет минимальным.Объедините эти два, чтобы получить три очка.Теперь можно было бы рассмотреть две другие точки и нарисовать линию.

ИЛИ Используйте функцию подгонки линии (у OpenCV есть такая) на четырех конечных точках, которые вы получаете при обнаружении прямой линии.Функция cvFitLine () возвращает векторное представление линии - без конечных точек.Так что обрежьте эту подходящую линию по координатам конечных точек прямых линий, которые находятся дальше всего друг от друга.

0 голосов
/ 09 марта 2012

Вы можете попытаться уменьшить изображение ... Благодаря этому ваша линия будет шириной в один пиксель! Теоретически мы можем найти набор параметров преобразования Хафа, которые будут определять ваши строки.

Вы можете попробовать заменить CV_HOUGH_PROBABILISTIC на CV_HOUGH_MULTI_SCALE в своем коде, который попытается найти строки в другом масштабе.

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