Quali fattori devo considerare nella scelta di un algoritmo di rilevamento dei bordi?


33

Ho imparato una serie di algoritmi di rilevamento dei bordi, inclusi algoritmi come i metodi Sobel, Laplacian e Canny. Mi sembra che il rilevatore di bordi più popolare sia un rilevatore di bordi Canny, ma ci sono casi in cui questo non è l'algoritmo ottimale da usare? Come posso decidere quale algoritmo usare? Grazie!


7
Cosa stai rilevando?
endolith,

Risposte:


29

Esistono molte possibilità di rilevamento dei bordi, ma i 3 esempi citati possono rientrare in 3 categorie distinte.

Sobel

Questo si avvicina a un derivato del primo ordine. Fornisce extrema nelle posizioni del gradiente, 0 dove non è presente alcun gradiente. In 1D, è =[-101]

  • bordo liscio => minimo o massimo locale, a seconda del segnale che sale o scende.
  • 1 pixel line => 0 sulla riga stessa, con extrema locale (di segno diverso) proprio accanto ad essa. In 1D, è =[1-21]

Esistono altre alternative a Sobel, che hanno +/- le stesse caratteristiche. Nella pagina di Roberts Cross su Wikipedia puoi trovare un confronto tra alcuni di essi.

Laplace

Questo si avvicina a una derivata del secondo ordine. Fornisce 0 nelle posizioni del gradiente e anche 0 dove non è presente alcun gradiente. Dà extrema dove inizia o si ferma un gradiente (più lungo).

  • bordo liscio => 0 lungo il bordo, estremi locali all'inizio / fine del bordo.
  • 1 pixel line => un estremo "doppio" sulla linea, con extrema "normale" con un segno diverso proprio accanto ad esso

L'effetto di questi 2 su diversi tipi di bordi può essere visualizzato visivamente:

Confronto tra Sobel e Laplace

astuto

Questo non è un semplice operatore, ma è un approccio in più passaggi, che utilizza Sobel come uno dei passaggi. Laddove Sobel e Laplace ti danno un risultato in scala di grigi / virgola mobile, che devi sottrarre a te stesso, l'algoritmo Canny ha una soglia intelligente come uno dei suoi passi, quindi ottieni semplicemente un risultato sì / no binario. Inoltre, su un bordo liscio, probabilmente troverai solo 1 linea da qualche parte nel mezzo del gradiente.


18

Mentre Sobel e Laplacian sono semplicemente filtri, Canny va oltre in due modi.

Innanzitutto, sopprime in modo non massimo il problema che elimina il rumore prodotto da tutti i tipi di oggetti e gradienti di colore in un'immagine. In secondo luogo, include effettivamente un passaggio che consente di distinguere tra le diverse direzioni del bordo e di riempire i punti mancanti di una linea.

In altre parole, il rilevatore di bordi Canny è in una classe completamente diversa da Sobel e Laplacian. È molto più intelligente in quanto include un sacco di post-elaborazione mentre Sobel e Laplacian sono semplicemente uscite di filtri passa-alto seguite da soglie binarie lineari.


esiste una versione 1-D di Canon in questo senso? Sarebbe semplicemente un'applicazione semplice della versione 2-D?
Spacey,

9

Le due decisioni più importanti quando provo a rilevare i bordi sono, per me di solito:

  1. Posso invece segmentare gli oggetti e quindi utilizzare un operatore morfologico per trovare il bordo dell'immagine binaria (segmentata)? Con dati rumorosi, questo tende ad essere più robusto.

  2. Quale filtro di smussatura che preserva i bordi dovrei usare per ridurre il rumore dell'immagine? I filtri per bordi si basano sulla differenziazione, che risentirà dei dati rumorosi. La scelta più semplice è il filtro mediano, ma i filtri a diffusione anisotropica o nonlocale offriranno prestazioni migliori al costo di avere più parametri da modificare.

Per il rilevamento dei bordi stesso, non posso pensare per una buona ragione di non usare Canny.


7

Approccio SUSAN

Un altro approccio al rilevamento di bordi e angoli è l'approccio SUSAN .

In questo approccio, anziché approssimazioni derivate, viene utilizzato un approccio di approssimazione integrale . Ciò ha il vantaggio non solo di essere in grado di rilevare i bordi, ma anche di essere in grado di rilevare "caratteristiche bidimensionali" (ad es. Angoli).

Un altro vantaggio di un approccio di approssimazione integrale è che il rumore tende ad avere un effetto minore sui risultati.


6

Canny produce un'immagine binaria e dipende da soglie fornite esternamente (che dipendono dall'immagine / dall'applicazione).
I filtri basati sulla convoluzione producono un'immagine di "intensità del bordo". Ciò è utile se il peso o la resistenza del bordo sono importanti (ad es. Nella trasformazione ponderata di Hough).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.