2010-11-04 4 views
9

Sto cercando di implementare la cascata trasformata di Hough (ho già implementato la versione 'normale'.), Ma sto avendo difficoltà a capire la seguente:Splitting coordinate in 3 Sottospazi Per risolvere illimitatezza

Dopo l'applicazione di HT su un'immagine, sono lasciato con linee rette nello spazio interno. La versione in cascata dell'HT richiede che divida lo spazio di hough in 3 sub-spazi in modo che il problema dei valori non limitati sia risolto.

Come posso fare questo?

Ecco un quadro di come lo spazio Hough è divisa: alt text

Al fine di ripristinare la limitatezza dello spazio dei parametri, preservando lo spazio dualità simmetrica, ci sarà dividere il (a, b) -space in tre sottospecie limitate, come mostrato nella figura seguente. Il primo sottospazio ha anche le coordinate aeb, ma solo per | a | < = 1 e | b | < = 1. Se | a | > 1 e | b | < = | a | , il punto (a, b) compare nel secondo sottospazio, con le coordinate 1/ae b/a. Se, infine, | b | > 1 e | a | < | b |, usiamo un terzo subspaziale con le coordinate 1/b e a/b.

Qui è dove mi sento seriamente confuso, supponiamo di avere una linea nello spazio interno. Come sarà diviso se viola? a | < = 1 e | b | < = 1?

Devo semplicemente passare attraverso tutti i pixel della linea e se il pixel in questione ha coordinate maggiori di | a | < = 1 e | b | < = 1, lo tracciamo nel 2 ° sottospazio?

Mi scuso se questo tipo di domanda non è ben accetto su Stack Overlow - c'è un altro sito dove posso fare domande sugli algoritmi?

Source for the image and the above quote

+0

Ciao. Con gli aspetti teorici degli algoritmi puoi provare su http://cstheory.stackexchange.com/, ma sappi che TCS.SE non riguarda l'implementazione, ma gli aspetti teorici. Prima di fare domande, controlla altre domande come sono e leggi le FAQ. –

risposta

1

Supponiamo di avere un punto di (x, y). Sotto la trasformata di Hough come presentato, si va alla linea

a x + b + y = 0 

Ciò corrisponde ad una linea diversa in ciascuna delle vostre trame subspaziali:

Subspace 1: a x + b + y = 0 
Subspace 2: x + (b/a) + (1/a) y = 0 
Subspace 2: (a/b) x + 1 + (1/b) y = 0 

Ad esempio, con il punto di (2, 1) si ottiene le tre linee :

Subspace 1: 2a + b + 1 = 0 
Subspace 2: 2 + (b/a) + (1/a) = 0 
Subspace 2: 2(a/b) + 1 + (1/b) = 0 

o la messa in y = m x + c forma:

Subspace 1: y = -2x - 1 
Subspace 2: y = -x - 2 
Subspace 2: y = -x/2 - 1