venerdì 24 ottobre 2008

Streaming video webcam with Gray and Threshold Effect

Codice:
#include "cv.h"
#include "highgui.h"
#include stdio.h
#include iostream.h


main() {
//Dichiaro IplImage e CvCapture
IplImage* gray;
IplImage* thres;
CvCapture* capture = cvCaptureFromCAM( 1 );
//se la webcam non eiste
if( !capture ) {
fprintf( stderr, "ERROR: capture is NULL \n" );
getchar();
return -1;
}
//Dichiaro nomi delle finestre
cvNamedWindow( "Original", CV_WINDOW_AUTOSIZE );
cvNamedWindow( "Gray", CV_WINDOW_AUTOSIZE );
cvNamedWindow( "Threshold", CV_WINDOW_AUTOSIZE );
//Ciclo infinito
while( 1 ) {
//Assegno a frame la capture della webcam
IplImage* frame = cvQueryFrame( capture );
//Creo un'immagine chiamata gray con le stesse dimensioni,bit e colore di frame
gray= cvCreateImage( cvSize(frame->width,frame->height), 8, 1);
//Creo un'immagine chiamata thres con le stesse dimensioni,bit e colore di frame
thres= cvCreateImage( cvSize(frame->width,frame->height), 8, 1 );
//Converto gray in modalità biano&nero
cvCvtColor( frame, gray, CV_BGR2GRAY );
//Capovolgo l'immagine dato che se elimino questa riga si vede al contrario
cvConvertImage( frame, gray, 1);
//Effettuo il Thresholding dell'immagine gray e la passo in thres
cvThreshold(gray,thres,127,150,CV_THRESH_TOZERO );
//Se frame è False
if( !frame ) {
fprintf( stderr, "ERROR: frame is null...\n" );
getchar();
break;
}
//Mostra le immagini
cvShowImage( "Original", frame );
cvShowImage( "Gray", gray );
cvShowImage( "Threshold", thres );
// Premere Esc per uscire
if( (cvWaitKey(10) & 255) == 27 ) break;
}
// Release the capture device housekeeping
cvReleaseCapture( &capture );
return 0;
}

Immagine:



Video:


Nessun commento: