Tesi Robotica Un coprocessore per Stereo-Matching: Profiling ... | Page 61

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 61 — #61 i 4.3. IMPLEMENTAZIONE IN C i 61 Così come per la funzione che calcola i punteggi anche la funzione di backtrack possiede la possibilità di essere eseguita in modalità debug, anche in questo caso, se l’applicazione viene compilata con il flag DEBUG definito, assieme all’algoritmo vengono compilate delle istruzioni utili in fase di debug che forniscono informazioni sull’esecuzione di ogni passo della procedura. Calcolo della disparità 4 9 14 19 24 void disparity(dir **path, uint8_t *outPtr, int size) { int row, col; int delta; int found = 0; for(row = 1; row < size; row++) { found = 0; for(col = 1; col < size; col++) { if(path[row][col] != NONE) { delta = abs(col - row); if(col >= row) { outPtr[3 * row + RED] = delta; } else if(col < row) { outPtr[3 * row + BLUE] = delta; } found = 1; break; } } if(!found) outPtr[3 * row + GREEN] = 255; } } Questa è la funzione che calcola la disparità delle righe di due immagini stereo. In input viene passato il percorso ricostruito tramite la fase di backtracking, una scanline dell’immagine di output in cui verrà memorizzata la corrispondente disparità tra le due righe e che insieme a tutte le altre rappresenta l’immagine che i i i i