2016-09-25 3 views
0

у меня есть программное обеспечение, которое генерирует несколько изображений, как следующие четыре изображения:Найти края изображений

image 01

image 02

image 03

image 04

ли алгоритм существует, который детектирует (горизонтальный & вертикальный) край s и создает двоичный вывод вроде этого?

enter image description here

Если возможно, я хотел бы реализовать это с numpy и scipy. Я уже пытался реализовать алгоритм, но я потерпел неудачу, потому что не нашел места для начала. Я также попытался использовать нейронную сеть для этого, но это, похоже, подавлено и не работает отлично.

+0

Я рекомендую использовать opencv или scikit-образ, которые намного более подходят по сравнению с numpy/scipy (последние являются внутренними зависимостями scikit-изображения) – sascha

+0

Преобразование Hough и некоторая предварительная очистка должны работать нормально. почему некоторые области настолько размыты? – Piglet

+1

Я думаю, что у вас есть вода в вашей программе –

ответ

1

Проще всего попробовать это:

  • Преобразование изображений в бинарных изображений (с помощью простого порога)
  • Применить преобразование Хаф (OpenCV, Matlab есть это уже реализовано)
  • В результаты преобразования Hough, определяют пики для углов 0 градусов, + и - 90 градусов. (Вертикальные и горизонтальные линии)

В OpenCV и Matlab у вас есть дополнительные опции для преобразования Hough, которые позволяют заполнить промежутки между двумя отсоединенными сегментами, принадлежащими одной и той же прямой. Вам может потребоваться несколько дополнительных операций для последующей обработки ваших результатов, но основными шагами должны быть эти.

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