Tesi Robotica Analisi, progettazione e implementazione... | Page 66
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 66 — #66
i
66
i
2. APPROCCI ALTERNATIVI
Algoritmo 2.2 Needleman–Wunsch con gap esteso
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for i = 1 to length(sequence1){
for j = 1 to length(sequence2){
mismatch = −|IL(line,i) −IR(line,j) |
if ( M(i−1,j) is a gap )
north <− M(i−1,j) +egap
else
north <− M(i−1,j) +gap
endif
diagonal <− M(i−1,j−1) +match +mismatch
if ( M(i,j−1) is a gap )
west <− M(i,j−1) +egap
else
west <− M(i,j−1) +gap
endif
M(i,j) <− max(north, diagonal, west)
}
}
gap=0 e mismatch=0.
Una versione successiva dell’algoritmo è stata implementata tenendo conto delle
esigenze specifiche del problema, ovvero le occlusioni.
Come si può vedere in Alg:2.2, si ha l’aggiunta di una nuova variabile chiamata
egap (extended gap). Un’occlusione (nel campo della stereoscopia) è una parte
della scena visibile da un punto di vista ma nascosta all’altro. Per capire meglio
questo concetto basta provare a mettere un dito ad un palmo dal naso. Osservando lo sfondo (aldilà del dito) prima chiudendo un occhio e poi l’altro, si nota
che il dito occupa il campo visivo in modi diversi a seconda dell’occhio aperto,
e di conseguenza occlude alla vista certe zone anziché altre. La modifica del
codice originale è stata effettuata tenendo conto del fatto che in una scena è
più probabile che ci siano poche occlusioni di grande dimensione che non invece
molte occlusioni ma di piccola dimensione.
2.2.2
Backtracking
Durante la creazione della matrice dei punteggi viene segnata anche la direzione
da cui si è provenuti, seguendo all’indietro queste direzioni è possibile ottenere
i
i
i
i