Probleme de Capture video avec OpenCV

Fermé
Jim_Nastiq - 6 févr. 2007 à 16:44
 deedee204 - 5 oct. 2007 à 11:37
Salut,

Je cherche a récuperer le flux video d'une camera avec OpenCV, j'ai une carte d'acquistion USB reliée au PC(tourne sous Win XP) et a ce que j'ai lu OpenCV devrait pouvoir lire mon flx video! cependant avec le code suivant je n'arrive pas a lire le flux :

#include <cv.h>
#include <cvaux.h>
#include <highgui.h>
#include <stdio.h>

void on_mouse(int event, int x, int y, int flags, void *param)
{
	switch(event)
	{
		case CV_EVENT_LBUTTONDOWN: printf("MouseLeftButtonDown x= %d y= %d\n",x,y);break;
		case CV_EVENT_RBUTTONDOWN: printf("MouseRightButtonDown x= %d y= %d\n",x,y);break;
	}
}

int main()
{
	CvCapture* capture=cvCaptureFromCAM(-1);
	
	cvNamedWindow("Capture Webcam", CV_WINDOW_AUTOSIZE);
	cvNamedWindow("Lissage Gaussien", CV_WINDOW_AUTOSIZE);
	cvSetMouseCallback("Capture Webcam",on_mouse,0);

	if(capture)
	{

		IplImage* frame=cvQueryFrame(capture);
		int width = (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH );
		int height= (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT);
		IplImage* gray     = cvCreateImage(cvSize(width,height), IPL_DEPTH_8U ,1);
		IplImage* gaussian = cvCreateImage(cvSize(width,height), IPL_DEPTH_8U ,1);
	
		printf("PRESS SPACE TO QUIT \n\n");
		
		while(1) 
		{
			frame = cvQueryFrame(capture);
			cvShowImage("Capture Webcam",frame);
			cvConvertImage(frame,gray,1);
			cvSmooth(gray,gaussian,CV_GAUSSIAN,5,5);
			cvShowImage("Lissage Gaussien",gaussian);
			if(cvWaitKey(1)==' ')break;
		}
	}
	else printf("Video stream not found\n\n");
	cvWaitKey(0);
	return 0;
}



merci de m'aider ;-)
A voir également:

1 réponse

utilise plutot
cvCvtColor(frame,gray,CV_BGR2GRAY)
au lieu de
cvConvertImage(frame,gray,1);
0