La seguente guida e’ orientata a chi vuole impostare l’ambiente di sviluppo NetBeans per lavorare ad un progetto C/C++/OpenCV. La guida e’ applicabile in ambienti Linux, o Mac OS. Su Windows questa guida ha senso solo se e’ installato il compilatore GNU per C e C++ (dipende da Cygwin).
Il primo prerequisito da soddisfare consiste nell’installare le librerie OpenCV di Intel, disponibili nei repository ufficiali della propria distribuzione Linux, o installabili su Mac OS X tramite MacPorts. Il secondo prerequisito e’ l’IDE NetBeans scaricabile gratuitamente all’indirizzo http://www.netbeans.org .
NetBeans e’ il mio IDE preferito per via della sua completezza in materia di linguaggi di programmazione e tecnologie supportate. Da Java e Java EE (definibili come linguaggi preferiti di NetBeans) a svariati Database e Application Server ad altri linguaggi e sintassi quali HTML, JSP, Ruby, Phyton, C e C++ e perfino UML.
Inoltre e’ OpenSource e disponbile per tutte le piattaforme (Windows, Mac OS, Linux, Solaris).
Attualmente ad esempio sto lavorando ad un progetto di Computer Vision (in C e C++) e contemporaneamente ad una piattaforma di Business Intelligence in Java Enterprise.
Grazie a NetBeans posso lavorare a due progetti differenti, scritti in codici diversi che utilizzano tecnologie e piattaforme diverse con un unico strumento.
Adesso veniamo a noi…
Per iniziare a preparare l’ambiente e adattarlo alla programmazione C/C++ bisogna scaricare il modulo di Netbeans atto a svolgere tale compito:
- Apriamo NetBeans e andiamo su Tools->Plugins.
- Nella scheda “Available Plugins” segniamo C/C++ e aspettiamo che NetBeans scarichi per noi i pacchetti necessari all’installazione della funzionalità.
Adesso nella voce File->New Project tra le “Categories” troveremo la cartella C/C++ e potremo cosi’ creare un nuovo progetto C/C++.
- Creiamo una nuova applicazione e andiamo avanti fino ad ottenere la schermata principale di NetBeans con il nuovo progetto nella scheda Projects.
- Clicchiamo col destro sul nodo principale del progetto (che corrisponde al nome assegnato al progetto) e scegliamo proprietà.
Aggiungiamo adesso il supporto per le OpenCV:
- Nella categoria C/C++, espandiamo C compiler e scegliamo la scheda General.
- Clicchiamo sul pulsante (…) alla destra di “Include Directories” e impostiamo il percorso degli include delle OpenCV (/usr/local/include/opencv o /opt/local/include/opencv su Mac OS se avete installato le OpenCV con MacPorts).
- Ripetete la stessa procedura per la categoria C++ compiler.
Adesso impostiamo il linker alle librerie dinamiche di OpenCV:
- Nella categoria Linker, nella voce Libraries clicchiamo sulla (…) alla destra di Libraries, clicchiamo su Add Library File, ed aggiungiamo le librerie libcv.so, libcvaux.so, libcxcore.so e libhighgui.so (Linux su /usr/local/lib) oppure libcv.dylib, libcvaux.dylib, libcxcore.dylib e libhighgui.dylib (Mac OS su /opt/local/lib se avete installato le OpenCV con MacPorts).
- Sempre nella categoria Linker nella voce General clicchiamo sulla (…) alla destra di Additional Library Directories ed aggiungiamo il percorso delle librerie (/usr/local/lib su Linux, /opt/local/lib su Mac OS X)
Applichiamo le impostazioni e adesso il vostro progetto dovrebbe essere pronto ad utilizzare le librerie OpenCV.
Ciao, ho seguito alla lettera le tue istruzioni. Ho provato un semplice codice che legge un’immagine da file (bmp) e la visualizza in una finestra. Compila, ma nell’esecuzione mi da questo errore:
dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /opt/local/lib/libjpeg.62.dylib
Ho provato ad aggiungere tra le librerie anche libjpeg.dylib ma non va. Puoi aiutarmi?
Grazie Angelo
P.S. Complimenti per la guida…utilissima!!! 🙂
Ciao Angelo, adesso è da un po’ che non lavoro con le OpenCV, quindi in dettaglio non saprei aggiungere altro oltre a ciò che ho scritto nella guida. L’unica cosa che posso dirti è che non ho mai riscontrato qul tipo di errore che sicuramente come tu hai intuito è causato da una incompatibilità di versione di librerie (Quelle dell’ImageIO Framework).
Supponendo che hai installato una versione funzionante e testata dell OpenCV Intel per Mac, hai anche installato gli Xcode Tools inclusi nel DVD di installazione di Leopard (o nel DVD di ripristino della macchina)?
Hai un Mac Intel o PowerPC?
Per risolvere il problema non basta copiare la libreria ma installare il framework che la contiene o ricompilarla da sorgente in base alla piattaforma ospitante (nel tuo caso credo Mac OS Leopard).