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