Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 46

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 46 — #46 i 3.3. IMPLEMENTAZIONE MATLAB i 46 aggiunto il valore del gap esteso (EGap), gap normale altrimenti. La stessa cosa viene fatta per la cella(row − 1, col) (north). Il massimo fra questi tre andrà ad essere posizionato nella cella di indice (row, col) [riga 24]. A questo punto possono succedere due cose: • il valore massimo coincide con uno solo fra northwest, north e west, e quindi solo una fra le matrici diag, gapNorth e gapWest verrà riempita; • il valore massimo coincide a più valori, e ad ogni corrispondenza ci sarà un riempimento della rispettiva matrice. In output otterremo quindi la matrice dei punteggi (ScoringScheme), la matrice dei gap a Nord (gapNorth), la matrice dei gap a Ovest (gapWest) e la matrice delle direzioni diagonali (diag). Track Essendo una funzione ricorsiva bisogna individuare il caso base, e la dove avviene la ricorsione. Come caso base abbiamo che gli indici row e col siano maggiori di zero, ovvero che non abbiamo sorpassato i bordi durante il tracciamento. Per come sono costruite le matrici, grazie alla prima riga e alla prima colonna, durante la fase di backtracking l’ultimo valore analizzato sarà quello della cella all’origine (1,1). Facciamo finta che le tre matrici siano condensate in una sola, la vista che si presenterebbe sarebbe molto simile a quella di Fig:3.2. Come si può ben vedere una volta che il il backtracking (frecce rosse) arriva ai bordi della matrice non c’è modo di non poter tornare all’origine, nel caso si arrivi al margine sinistro ci sono tanti gap nord quante sono le ca 6V