Qual è la differenza tra le trasformate di Hough e Radon?


34

Conosco la trasformazione del Radon dall'apprendimento delle scansioni CT, ma non la trasformazione di Hough. Dice Wikipedia

Il piano (r, θ) viene talvolta chiamato spazio di Hough per l'insieme di linee rette in due dimensioni. Questa rappresentazione rende la trasformazione di Hough concettualmente molto vicina alla trasformazione bidimensionale del Radon. (Possono essere visti come modi diversi di guardare la stessa trasformazione. [5])

La loro uscita mi sembra la stessa:

grafici rho vs theta affiancati per la trasformazione di Hough e Radon

Quindi non capisco quale sia la differenza. Sono solo la stessa cosa vista in modi diversi? Quali sono i vantaggi di ogni diversa visione? Perché non sono combinati nella "trasformazione di Hough-Radon"?


Ehi, una specie di domanda non correlata, ma potresti condividere il tuo schema di colori della mappa di calore Bezier che hai usato in questa immagine ? Sembra piuttosto buono, e mi chiedevo se tu avessi una matrice di valori RGB che lo descrivono. M×3
DumpsterDoofus,

@DumpsterDoofus Credo che non ho pubblicato perché è kludgy e volevo lucidarlo prima, ma dal momento che non ho ancora: non-Bezier versione è qui gist.github.com/endolith/2879736 e il tentativo di Bézier è qui Gist .github.com / endolith / ef948b924abf289287bd utilizzato anche qui flic.kr/p/dWSfUd
endolith

Grazie, in realtà l'ho capito ieri sera, può essere scritto in modo compatto come RGB(x)=((2x)xBoole[0x1]x2Boole[1x1]x(x+2)Boole[1x0]).
DumpsterDoofus,

@DumpsterDoofus Sentiti libero di ripulire il mio codice :)
endolith

Risposte:


31

La trasformazione di Hough e la trasformazione di Radon sono in effetti molto simili tra loro e la loro relazione può essere liberamente definita come la prima essendo una forma discretizzata della seconda.

La trasformata Radon è una trasformata integrale matematica, definita per funzioni continue su su iperpiani in R n . La trasformazione di Hough, d'altra parte, è intrinsecamente un algoritmo discreto che rileva le linee (estendibili ad altre forme) in un'immagine mediante polling e binning (o voting).RnRn

Penso che un'analogia ragionevole per la differenza tra i due sarebbe come la differenza tra

  1. calcolare la funzione caratteristica di una variabile casuale come la trasformata di Fourier della sua funzione di densità di probabilità (PDF) e
  2. generare una sequenza casuale, calcolare il suo PDF empirico mediante istogramma binning e poi trasformarlo in modo appropriato.

Tuttavia, la trasformazione di Hough è un algoritmo rapido che può essere soggetto a determinati artefatti. Il radon, essendo più matematicamente valido, è più preciso ma più lento. Puoi infatti vedere gli artefatti nel tuo esempio di trasformazione di Hough come striature verticali. Ecco un altro esempio veloce in Mathematica:

img = Import["http://i.stack.imgur.com/mODZj.gif"];
radon = Radon[img, Method -> "Radon"];
hough = Radon[img, Method -> "Hough"];
GraphicsRow[{#1, #2, ColorNegate@ImageDifference[#1, #2]} & @@ {radon,hough}]

L'ultima immagine è davvero sbiadita, anche se l'ho negata per mostrare le striature di colore scuro, ma è lì. Inclinare il monitor aiuterà. È possibile fare clic su tutte le figure per un'immagine più grande.

Parte del motivo per cui la somiglianza tra i due non è molto nota è perché diversi campi della scienza e dell'ingegneria hanno storicamente usato solo uno di questi due per i loro bisogni. Ad esempio, in tomografia (medica, sismica, ecc.), Microscopia, ecc., La trasformazione del radon è forse utilizzata esclusivamente. Penso che la ragione di ciò sia che mantenere al minimo gli artefatti sia della massima importanza (un artefatto potrebbe essere un tumore mal diagnosticato). D'altra parte, nell'elaborazione delle immagini, nella visione artificiale, ecc., È la trasformazione di Hough che viene utilizzata perché la velocità è primaria.


Potresti trovare questo articolo abbastanza interessante e attuale:

M. van Ginkel, CL Luengo Hendriks e LJ van Vliet, Una breve introduzione alle trasformazioni di Radon e Hough e il modo in cui si relazionano l'una con l'altra , Quantitative Imaging Group, Imaging Science & Technology Department, TU Delft

Gli autori sostengono che sebbene i due siano strettamente correlati (nelle loro definizioni originali) ed equivalenti se scrivete la trasformazione di Hough come una trasformazione continua, il Radon ha il vantaggio di essere più intuitivo e avere una solida base matematica.


Esiste anche la trasformata di Radon generalizzata simile alla trasformata di Hough generalizzata, che funziona con curve parametrizzate anziché con linee. Ecco un riferimento che lo tratta:

Toft, PA, "Utilizzo della trasformata Radon generalizzata per il rilevamento di curve in immagini rumorose" , IEEE ICASSP-96, Vol. 4, 2219-2222 (1996)


Oh, ho pensato che quelli fossero aggiunti intenzionalmente all'immagine. Non ho capito che sono artefatti. Quindi Radon sta a Hough come DFT a FFT? Ma c'è anche una trasformazione generalizzata di Hough che può trovare cerchi e cose, e forse cose simili per la trasformazione di Radon?
endolith,

1
Sì, c'è la trasformazione del Radon generalizzata che funziona per le curve parametrizzate. Suppongo che sia più difficile farlo per curve completamente arbitrarie, ma non ne so molto. Ho aggiunto un riferimento alla mia risposta.
Lorem Ipsum,

La trasformazione del Radon può essere accelerata anche con i metodi FFT. Immagino che l'Hough non possa essere? Hough è ancora più veloce? Immagino che dipenda dalle dimensioni dell'immagine?
endolith

1
@endolith È la mia esperienza che Hough è più veloce. Tuttavia, il mio uso di questi due è quello di rilevare le poche strane righe in qualcosa con cui sto armeggiando. Non l'ho mai usato in lavori seri, né ho implementato il mio. Quindi suggerirei di porre questa domanda come nuova, in quanto non posso rispondere con certezza.
Lorem Ipsum,

6

Oltre alla risposta di Lorem Ipsum che spiega la trasformazione di Hough come forma discretizzata di trasformazione di Radon, mi piace questa spiegazione descrittiva, anche secondo Ginkel e altri :

ρθ

θθΔρ(X,y)

ΔθΔρ

θθ

Immagino che Hough sia dominante in molti campi a causa del suo semplice algoritmo, mentre il Radon viene utilizzato dove l'accuratezza è cruciale o la conoscenza a priori disponibile.

Vedi anche riferimenti a Matlab (espandi la scheda Algorithm ):

www.mathworks.com/help/images/ref/radon.html

www.mathworks.com/help/images/ref/hough.html

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.