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.