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

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 53 — #53 i 4.3. IMPLEMENTAZIONE IN C i 53 disponibili, o in fase di sviluppo, delle interfacce per Python, Ruby, Matlab, e altri linguaggi. L’obiettivo di OpenCV è quello di fornire un framework per la computer vision che favorisca lo sviluppo di applicazioni anche complesse in modo semplice e veloce. OpenCV vanta oltre 500 funzioni che coprono molte aree della computer vision, includendo imaging medico, sicurezza, interfacce utente, calibrazione dei dispositivi di cattura, stereo vision e robotica. Dato che inoltre la computer vision va a braccetto con il machine learning, OpenCV contiene inoltre una libreria completa e general purpose dedicata al machine learning (MLL). Questa sotto-libreria è orientata al pattern recognition statistico e al clustering. OpenCV è progettata pensando in modo particolare all’efficienza computazionale e alle applicazioni real-time. OpenCV è scritta in codice C ottimizzato in grado di sfruttare i processori multi-core. Inoltre per le architetture Intel, esistono le librerie Integrated Performance Primitives (IPP), che sono una raccolta di routine ottimizzate di basso livello implementate per diverse aree algoritmiche, se disponibili, OpenCV seleziona le routine appropriate a tempo di esecuzione. 4.3.2 Il codice Inclusioni 1 6 11 16 #include #include #include #include #include #include #include #include #include "highgui.h" "cv.h" //#define DEBUG #define PROF #define #define #define #define RED 2 GREEN 1 BLUE 0 abs(x) (((x) >= 0) ? ((x)) : (-(x))) i i i i