Обнаружение сегментов линий на изображении
-
21-08-2019 - |
Вопрос
Я пытаюсь обнаружить сегменты линий на изображении.
Насколько я понимаю, алгоритм Хафа обнаруживает линии, но не сегменты.
Кто-нибудь знает, как бы я это сделал, или какие-нибудь библиотеки, подходящие для этого?
В моем случае я пытаюсь обнаружить следы звезд (которые для этих целей все прямые) по фотографии, чтобы снова свести их к точкам.
Если это важно, я пытаюсь реализовать это на С#.
Есть идеи?
Решение
Для несмазывания размытия в движении вам следует посмотреть на деконволюция.Преобразование Хафа может оказаться полезным для нахождения исходного вектора движения (я подозреваю, что оно отлично сработает для группы параллельных отрезков прямых), но деконволюция — это то, что вы бы использовали, чтобы получить из него исходные звезды, и эти ребята используют другой метод оценки исходного вектора движения:
Другие советы
Преобразование Хафа openCV cvHoughLines2 имеет вероятностный режим, который обнаруживает сегменты линий:
- CV_HOUGH_PROBABILISTIC - вероятностное преобразование Хафа (более эффективно, если изображение содержит несколько длинных линейных отрезков).Он возвращает сегменты линий, а не целые строки.Каждый сегмент представлен начальной и конечной точками, а матрица должна быть (создаваемая последовательность будет) типа CV_32SC4.
Я проверил это, и это работает
Посмотрите на Детектор сегментов линии LSD, опубликованный с подробностями реализации и исходным кодом.