Tesi Robotica Algoritmi ed architetture per la risoluzione di... | Page 55

Capitolo 3 AGAST implementazioni 3.1 Seriale su PC Come già spiegato nel capitolo 2, AGAST utilizza un albero di ricerca binaria per la fase di corner detection. Questo albero, detto anche albero di switcing, viene utilizzato per passare da un albero di decisione “omogeneo” ad uno “strutturato” in base alla luminosità dei pixel. Il comportamento di AGAST è stato studiando prendendo in esame un’immagine monocromatica. In questo paragrafo, spiegheremo l’implementazione del codice C di AGAST e vedremo come questa soluzione ha ottime performance che ci serviranno per poter approcciare diversi tipi di implementazione, nel nostro caso specifico C to Hardware. Esistono varie tipi di implementazione che di eriscono tra loro per la grandezza della maschera di pixel(area che si va ad analizzare nell’immagine). Noi abbiamo preso in considerazione agast5_8 che lavora su una maschera di 8 pixel ed utilizza un cerchio di Bresenham pari a 0.33 e 0.1, con un numero di switch su pixel uguali pari a 1 ed un numero di switch su pixel non uguali pari a 6. Di seguito le parti salienti del codice di agast5_8.c: 1 //Prendiamo in esame solo le porzioni di codice che ci interessano per la spiegazione //Per il codice completo si rimanda all’appendice 55