Обнаружение сегментов линий на изображении

StackOverflow https://stackoverflow.com/questions/675664

  •  21-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь обнаружить сегменты линий на изображении.

Насколько я понимаю, алгоритм Хафа обнаруживает линии, но не сегменты.

Кто-нибудь знает, как бы я это сделал, или какие-нибудь библиотеки, подходящие для этого?

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

Если это важно, я пытаюсь реализовать это на С#.

Есть идеи?

Это было полезно?

Решение

Для несмазывания размытия в движении вам следует посмотреть на деконволюция.Преобразование Хафа может оказаться полезным для нахождения исходного вектора движения (я подозреваю, что оно отлично сработает для группы параллельных отрезков прямых), но деконволюция — это то, что вы бы использовали, чтобы получить из него исходные звезды, и эти ребята используют другой метод оценки исходного вектора движения:

before after

Другие советы

Преобразование Хафа openCV cvHoughLines2 имеет вероятностный режим, который обнаруживает сегменты линий:

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

Я проверил это, и это работает

Посмотрите на Детектор сегментов линии LSD, опубликованный с подробностями реализации и исходным кодом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top