5/10/2014

Utilizzare OpenCV in C/C++ con Eclipse su Windows 8

Dopo aver scaricato il compilatore MinGW ed Eclipse con la prospettiva per C/C++, dobbiamo scaricare la libreria di OpenCV ,che è precompilata per windows e dovrebbe funzionare su tutti i dispositivi (altrimenti se abbiamo problemi dobbiamo compilare noi sul nostro terminale le librerie, soluzione più lunga e complicata che non illustro) dal sito opencv.org. (Ad oggi siamo alla 2.4.9).

Fatto tutto se estraiamo minGW e OpenCV nel percorso C:\ (ovviamente se scegliamo un percorso diverso dovremo modificare il path secondo la nostra scelta) inseriamo nel path,(quindi:
sistema--> impostazioni di sistema avanzate --> variabili d'ambiente --> variabili di sistema --> path)
i percorsi : C:\MinGW\bin; C:\opencv\build\x86\vc12\bin   (nel caso in cui usiamo le librerie a 32 bit).

Adesso andiamo in Eclipse utilizzando la prostettiva C/C++ (che puo essere scaricata e installata tramite help->Install new software).

Indichiamo a Eclipse il persorso per includere heder file e librerie.
Andiamo sul progretto -->clic dx-->Properties
poi in C/C++ Build --> Settings
aggiungiamo le cose che ci servono per compilare e linkare il nostro progetto(questa è una cosa che anche io devo imparare :D in generale quelle che sto mettendo consentono di far funzionare la webcam ma probabilmente includo qualche libreria inutile,che non fa mai male però :D).
Seguendo queste immagini includiamo:


Usiamo le librerie:


Nel caso in cui vogliamo attivare la webcam e vedere il contenuto in una finestra operiamo cosi, copiamo e incolliamo questo codice (l'ho preso in rete e l'ho leggermente modificato visto che è da poco che mi sto avvicinando a OpenCV):

#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;
using namespace std;

int main( int argc, char **argv )
{
    CvCapture *capture = 0;
    IplImage  *frame = 0;
    int       key = 0;
    /* inizializzazione Webcam */
    capture = cvCaptureFromCAM( 0 );
    if ( !capture ) {
        cout << "Errore inizializzazione webcam!\n";
        return 1;
      }
    /* create a window for the video */
    cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );
    while( key != 'q' ) {
        /*prendo un frame */
        frame = cvQueryFrame( capture );
        if( !frame ) break;
        /*Visualizzo il frame corrente */
        cvShowImage( "result", frame );
        key = cvWaitKey( 20 );
    }
    /* Libero la memoria*/
    cvDestroyWindow( "result" );
    cvReleaseCapture( &capture );
    return 0;
}

Sul mio portatile Asus la webcam integrata funziona correttamente, se questo non dovesse funzionare sul tuo PC potrebbe non essere colpa mia :p ma delle librerie OpenCV che forse devono essere per forza compilate sulla tua macchina.

NOTA: Procedendo con il mio lavoro in opencv ho scoperto che alcune cose non funzionano e bisognava per forza compilare le librerie sul proprio PC. Compilare le librerie in windows non è proprio semplice infatti ho deciso di usare opencv su fedora 20 e ho fatto anche una guida su come configurare il tutto in Fedora.

Nessun commento:

Posta un commento