Tesi Robotica Un coprocessore per Stereo-Matching: Profiling ... | Page 55
i
i
“MF_Tesi” — 2011/9/12 — 11:39 — page 55 — #55
i
4.3. IMPLEMENTAZIONE IN C
i
55
}
return ret;
10
}
Questa funzione alloca in memoria una nuova matrice dei punteggi. Le celle
di questa matrice allocata dinamicamente sono del tipo dirVal e quindi contengono un punteggio, una direzione ed un indicatore di gap. Semplicemente la
funzione alloca dinamicamente la matrice e la restituisce.
3
void clearMatrix(dirVal **score, int gap, int egap, int linesize)
{
int i;
score[0][0].d = NONE;
score[0][0].v = 0;
score[0][1].v = gap;
score[0][1].d = WEST;
score[0][1].isGap = 1;
8
score[1][0].v = gap;
score[1][0].d = NORTH;
score[1][0].isGap = 1;
for(i = 2; i < linesize; i++)
{
score[0][i].v = score[0][i - 1].v + ((egap > gap) ? egap : gap);
score[0][i].d = WEST;
score[0][i].isGap = 1;
score[i][0].v = score[i - 1][0].v + ((egap > gap) ? egap : gap);
score[i][0].d = NORTH;
score[i][0].isGap = 1;
}
13
18
23
}
La funzione clearMatrix inizializza la matrice in modo da poter essere utilizzata nel calcolo dei punteggi. Inizializza la prima riga e la prima colonna con
una serie progressiva di valori di gap, o di egap nel caso in cui tale funzionalità
è attiva.
Calcolo dei punteggi
i
i
i
i