Tesi Robotica Un coprocessore per Stereo-Matching: Profiling ... | Page 57
i
i
“MF_Tesi” — 2011/9/12 — 11:39 — page 57 — #57
i
4.3. IMPLEMENTAZIONE IN C
i
57
#endif
score[row][col].v = best;
if(best == diag)
{
#ifdef DEBUG
printf("diag\n\n");
#endif
score[row][col].d = DIAG;
continue; //scelgo sempre la prima soluzione ottima
}
if(best == west)
{
#ifdef DEBUG
printf("west\n\n");
#endif
score[row][col].d = WEST;
score[row][col].isGap = 1;
continue;
}
if(best == north)
{
#ifdef DEBUG
printf("north\n\n");
#endif
score[row][col].d = NORTH;
score[row][col].isGap = 1;
continue;
}
37
42
47
52
57
62
}
}
67
}
Questa funzione effettua il calcolo della matrice di punteggi e prende in input
le scanline delle due immagini stereo, il puntatore alla matrice dei punteggi, la
larghezza delle scanlines e i valori di gap ed egap. Il cuore della funzione stà nei
due cicli for indentati che scandiscono i pixel delle due scanlines affinchè venga
costruita la matrice dei punteggi. Per ogni coppia di pixel vengono calcolati
i tre tipi di estensione dell’allineamento precedente. Viene calcolato il valore
del mismatch da sottrarre al pixel di nord-ovest, il valore della cella nel caso
di estensione da nord o da ovest, in particolare si distingue il caso in cui tali
pixel sono di gap oppure no. Nel primo caso, se attivo, si utilizza il valore di
i
i
i
i