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

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 45 — #45 i 3.3. IMPLEMENTAZIONE MATLAB i 45 Algoritmo 3.6 Function ScoreVariante II 1 2 3 4 5 for row = 2:lengthLineIL + 1 for col = 2:lengthLineIR + 1 delta = (abs(IL(lineL,row-1,1) - IR(lineR,col-1,1)) + abs(IL(lineL,row-1,2) - IR(lineR,col-1,2)) + abs(IL(lineL,row-1,3) - IR(lineR,col-1,3))); 6 northwest = ScoringScheme(row-1,col-1) + ( 255 - delta ); 7 8 if(gapWest(row,col-1)==0) west = ScoringScheme(row,col-1) + gapscorestart; else west = ScoringScheme(row,col-1) + gapscorecontinuation; end if(gapNorth(row-1,col)==0) north = ScoringScheme(row-1,col) + gapscorestart; else north = ScoringScheme(row-1,col) + gapscorecontinuation; end 9 10 11 12 13 14 15 16 17 18 19 best = max(max(north, west), northwest); if(northwest==best) diag(row,col) = 1; end if(north==best) gapNorth(row,col) = 1; end if(west==best) gapWest(row,col) = 1; end ScoringScheme(row,col) = best; 20 21 22 23 24 end 25 26 end come alla cella di posizione (row, col). I due indici sono settati per partire dalla locazione (2, 2) dato che la prima colonna e la prima riga sono già state riempite. Nelle righe 3,4,5 viene calcolato il valore del delta, calcolo eseguito sommando la differenza in valore assoluto delle intensità di tutte le componenti del pixel alla posizione (row − 1, col − 1), lo scostamento a -1 è causato dalla colonna e riga in più. A questo punto si calcolano i vari punteggi di allineamento [riga 7-18], al punteggio della cella(row − 1, col − 1) (northwest) viene aggiunto il valore dell’intensità massima (255) meno il delta. Al punteggio della cella(row, col − 1) (west) possono essere aggiunti due valori: nel caso in cui sia già una cella di Gap vi viene i i i i