作者:
出处:/** =====================================================================================** Filename: videocapture.cpp** Description: A Program of Capture the video Camrea 本程序可以进行摄像头采集、录像(按键 r)和截图(鼠标左键)** Version: 1.0* Created: 02/02/2009 09:48:27 AM* Revision: none* Compiler: gcc** Author: Futuredaemon (BUPT), gnuhpc@gmail.com* Company: BUPT_UNITED** =====================================================================================*/#include "cv.h"#include "highgui.h"#include #include #include IplImage *frame=0;void mouseHandler(int event,int x,int y,int flags,void *param);int main(int argc , char **argv){CvCapture *capture = 0;int flag= 1;int iscolor=1;int fps=15;int frameW=320;int frameH=240;int press=0;CvVideoWriter *writer=cvCreateVideoWriter("out.avi",CV_FOURCC('D','I','V','X'),fps,cvSize(frameW,frameH),iscolor);if (argc==1|| (argc==2 && strlen(argv[1])==1 && isdigit(argv[1][0]))){capture = cvCaptureFromCAM(-1);}else if(argc==2){capture = cvCaptureFromAVI(argv[1]);}if (!capture){fprintf(stderr,"Could not initialize capturing.../n");return -1;}cvNamedWindow("main",0);cvSetMouseCallback("main",mouseHandler,NULL);for (;;){frame = cvQueryFrame(capture);if (!frame){break;}if( flag==0 ){cvWriteFrame(writer,frame);}cvShowImage("main",frame);if ((press=cvWaitKey(20))=='r'){if( flag==1 ){printf("Starting Record the Video!/n");flag = 0;} else{printf("Stop the recording!/n");flag = 1;}}else if(press==27){break;}}cvReleaseCapture(&capture);cvDestroyWindow("main");return 0;}void mouseHandler(int event,int x,int y,int flags,void *param){time_t curtime=time(NULL);char *date=ctime(&curtime);switch ( event ){case CV_EVENT_LBUTTONDOWN :printf("Get a picrure named %s/n",date+11);sprintf(date,"%s.jpg",date+11);cvSaveImage(date,frame);break;default :break;}}
作者:
出处: