OpenCV e Dev-C++

Per via della tesi di laurea mi sto interessando alla libreria Intel di visione artificiale Open Computer Vision Library, o più brevemente OpenCV. In rete ho trovato diverso materiale che spiega come utilizzarla assieme a Visual Studio, ma non ho trovato materiale riguardante l’integrazione di OpenCV nell’ambiente di sviluppo Dev-C++, così ecco quali sono i passi da fare per utilizzarla con tale ambiente di sviluppo (si presuppone che abbiate installato sia OpenCV, sotto C:\Programmi, sia Dev-C++):

  • Aprire Dev-C++
  • Andare sul menù Strumenti, quindi Opzioni di compilazione
  • Nella scheda “Compilatore“, mettere il segno di spunta su “Aggiungi questi comandi alla linea di comando del linker” e scrivere nella casella di testo associata -lhighgui -lcv -lcxcore -lcvaux -lcvcam -lml
  • Nella scheda “Cartelle“, sottoscheda “Librerie“, aggiungere C:\Programmi\OpenCV\lib
  • Nella scheda “Cartelle“, sottoscheda “File binari” (attualmente uso la versione inglese, dove la scheda si chiama “Binaries”, mi fido di Riccardo per l’interfaccia italiana), aggiungere C:\Programmi\OpenCV\bin
  • Sempre scheda “Cartelle“, sottoscheda “Include C“, aggiungere le seguenti cartelle:
    • C:\Programmi\OpenCV\cxcore\include
    • C:\Programmi\OpenCV\cv\include
    • C:\Programmi\OpenCV\otherlibs\highgui
    • C:\Programmi\OpenCV\cvaux\include
    • C:\Programmi\OpenCV\otherlibs\cvcam\include
    • C:\Programmi\OpenCV\ml\include
  • Ripetere quanto sopra per la sottoscheda “Include C++

Per verificare che tutto funzioni correttamente, si può provare a compilare ed eseguire il seguente codice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "cv.h"
#include "highgui.h"
#include <cstdlib>
#include <iostream>
 
int main(int argc, char *argv[])
{
    char windowName[] = "Hello world";
    CvPoint startPoint;
    CvFont font;
    CvSize textSize, windowSize;
    IplImage *image;
 
    // Inizializzazione font e allocazione immagine
    windowSize.width = 640;
    windowSize.height = 480;
    startPoint.x = 100;
    startPoint.y = 240;
    image = cvCreateImage(windowSize, 8, 3);
    cvZero(image);
    cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0f, 1.0f);
 
    // Creazione di una finestra
    cvNamedWindow(windowName, 1);
 
    // Scrittura del testo "Ciao mondo!" sulla struttura immagine
    cvPutText(image, "Ciao mondo!", startPoint, &font, CV_RGB(255, 0, 0));
 
    // Visualizzazione dell'immagine
    cvShowImage(windowName, image);
 
    // Attesa input tastiera, successiva deallocazione memoria
    // e chiusura finestra
    cvWaitKey(0);
    cvReleaseImage(&image);
    cvDestroyWindow(windowName);
    return 0;
}

Nota: Versione corretta. Ringrazio chi mi ha segnalato la dimenticanza (grazie Riccardo). Ho aggiunto anche i riferimenti per l’uso delle librerie di machine learning (ml). Quanto scritto funzione con le librerie OpenCV 1.0 (a breve usciranno le 1.1)


About this entry