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

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 54 — #54 i 4.3. IMPLEMENTAZIONE IN C i 54 #define max(x, y) (((x) >= (y)) ? (x) : (y)) #define GAP 69 #define EGAP 10 21 typedef enum _dir {NONE = 0, DIAG, NORTH, WEST} dir; typedef struct _dirval {dir d; int v; int isGap} dirVal; 26 dirVal **createMatrix(int linesize); void clearMatrix(dirVal **score, int gap, int egap, int linesize); void calculateScore(dirVal **score, uint8_t *lineL, uint8_t *lineR, int gap, int egap, int linesize); dir **backtrack(dirVal **score, int size); void disparity(dir **path, uint8_t *outPtr, int size); dir **createPath(int linesize); void printScore(dirVal **score, int linesize); Questa porzione di codice include una serie di librerie di sistema utilizzate per l’analisi dei tempi e le librerie di OpenCV, inoltre sono state definite delle macro come la funzione valore assoluto e la funzione che calcola il massimo tra due valori numerici e dei flag che abilitano delle funzionalità, come quella di debug e di analisi dei tempi. È inoltre stato definito un nuovo tipo enumerato che indica le possibili direzioni percorribili nella matrice, ed una struttura che rappresenta il contenuto di una cella: il valore dell