Какие факторы я должен учитывать при выборе алгоритма обнаружения ребер?


33

Я узнал о ряде алгоритмов обнаружения краев, включая такие алгоритмы, как методы Собеля, Лапласа и Канни. Мне кажется, самый популярный детектор контуров - детектор контуров Canny, но есть ли случаи, когда этот алгоритм не является оптимальным для использования? Как я могу решить, какой алгоритм использовать? Благодарность!


7
Что вы обнаруживаете?
эндолит

Ответы:


29

Существует множество возможностей обнаружения краев, но три упомянутых вами примера попадают в 3 различные категории.

Собела

Это приближает производную первого порядка. Дает экстремумы в положениях градиента, 0, где градиента нет. В 1D это = [-101]

  • плавный край => локальный минимум или максимум, в зависимости от того, идет ли сигнал вверх или вниз.
  • 1 пиксельная линия => 0 в самой строке, рядом с которой располагаются локальные экстремумы (другого знака). В 1D это = [1-21]

Есть другие альтернативы Собелу, которые имеют +/- те же характеристики. На странице Робертс Кросс в Википедии вы можете найти сравнение некоторых из них.

Лаплас

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

  • гладкий край => 0 вдоль края, локальные экстремумы в начале / конце края.
  • 1 пиксельная линия => «двойной» экстремум на линии, с «нормальными» экстремумами с другим знаком рядом с ним

Эффект этих 2 на различных типах краев лучше всего увидеть визуально:

Сравнение Собель против Лапласа

благоразумный

Это не простой оператор, но многоэтапный подход, который использует Sobel в качестве одного из шагов. В тех случаях, когда Собел и Лаплас дают вам результат в градациях серого / с плавающей запятой, который вам нужно пороговить самостоятельно, алгоритм Canny имеет интеллектуальное пороговое значение в качестве одного из своих шагов, поэтому вы просто получаете двоичный результат да / нет. Кроме того, по гладкому краю вы, вероятно, найдете только 1 линию где-то посередине градиента.


18

В то время как Собель и Лапласиан - просто фильтры, Кэнни идет дальше, чем двумя способами.

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

Другими словами, детектор края Кэнни относится к совершенно другому классу, чем Собел и Лапласиан. Это намного умнее, так как включает в себя целую кучу постобработки, в то время как Sobel и Laplacian являются просто выходными фильтрами верхних частот, за которыми следует линейное двоичное пороговое значение.


есть ли в этом отношении 1-D версия canny? Было бы просто прямое приложение 2-ой версии?
Спейси

9

Для меня обычно наиболее важны два решения при определении краев:

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

  2. Какой сохраняющий края фильтр сглаживания следует использовать для уменьшения шума на изображении? Краевые фильтры основаны на разнице, которая пострадает от зашумленных данных. Простейшим выбором является медианный фильтр, но анизотропные диффузионные или нелокальные средние фильтры предложат лучшую производительность за счет увеличения параметров для настройки.

Что касается самого обнаружения краев, я не могу по уважительной причине не использовать Canny.


7

Сьюзан подход

Другой подход к обнаружению краев и углов подход SUSAN .

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

Другое преимущество подхода интегральной аппроксимации состоит в том, что шум имеет тенденцию оказывать меньшее влияние на результаты.


6

Canny дает двоичное изображение и зависит от внешних заданных пороговых значений (которые зависят от изображения / приложения).
Фильтры на основе свертки дают изображение с «краевой интенсивностью». Это полезно, если важны вес или прочность кромки (например, при взвешенном преобразовании Хафа).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.