2014-01-14 3 views
3

Я работаю с houghlines в OpenCV, и я не могу получить более точное чтение строки, иногда есть две повторяющиеся строки друг на друга. Я посмотрел учебник на сайте opencv, но он дает аналогичный результат.Более точный houghline OpenCV

+0

Запишите проверку наклон/близость линии/точки (точек). У меня были подобные проблемы, но простая проверка решила его. Однако убедитесь, что вы не теряете информацию. – scap3y

+0

Попробуем это, спасибо, просто интересно, можно ли читать кривые на houghlines? – user3130151

+0

HoughLines обнаружит _lines_. Если ** кривая ** на вашем изображении может быть представлена ​​набором строк, тогда HL выведет эту коллекцию. Как вы это понимаете, это зависит от вас. – scap3y

ответ

8

Чтобы удалить эти повторяющиеся строки, есть две вещи, которые могут вам помочь:

  1. Двойные края могут появиться, которые могут привести к дублированию линий. Последовательность размытия/расширения входного изображения решит эти проблемы.
  2. Закрытые линии, имеющие почти такой же наклон, могут быть удалены с помощью разрешений нижнего угла для аргумента theta метода Hough Line. Например, использование π/180 приведет к поиску линий, которые отличаются только на один градус по их наклону. Вы можете использовать 5*π/180, чтобы найти строки с разрешением 5 градусов.

В качестве примера, следующие строки будут обнаружены с помощью необработанного изображения и разрешения 1-степени: triple

После небольшого размытия и используя разрешение 3 градусов вы можете получить результат например: fixed

Изменив порог, вы можете получить больше или меньше строк.
Об установке кривых, которые вы указали в разделе комментариев, да, вы можете подогнать кривые, но не с помощью метода линий hough. Вам нужно найти параметрическое определение этой формы и попытаться выполнить процедуру голосования в hough transform самостоятельно. Единственная другая форма, которую opencv помогает вам найти, - это круг.

Смежные вопросы