《学习OpenCV (中文版)》第2章 练习3和练习4

来源:互联网 发布:致远软件工作怎么样 编辑:程序博客网 时间:2024/04/29 05:47
IplImagedoPyrDown(IplImage* in, int filter = IPL_GAUSSIAN_5x5) {//assert(in->width%2 ==0 && in->height%2==0);IplImageout = cvCreateImage(cvSize(in->width/2, in->height/2), in->depth, in->nChannels);cvPyrDown(in, out);return out;} void fromCamera2() {CvCapturecapture = cvCreateCameraCapture(0);//CvCapture* capture = cvCreateFileCapture("I:/Movies/上海武士01.mkv");cvNamedWindow("camera"CV_WINDOW_AUTOSIZE);if(capture != NULL) {IplImageframe;frame = cvQueryFrame(capture);double fps = cvGetCaptureProperty(captureCV_CAP_PROP_FPS);if(fps<0.00000001) fps = 23.0;CvSize size = cvSize((int)cvGetCaptureProperty(captureCV_CAP_PROP_FRAME_WIDTH)/2,//要注意这里的大小,与变换后的图像一致(int)cvGetCaptureProperty(captureCV_CAP_PROP_FRAME_HEIGHT)/2);CvVideoWriterwriter = cvCreateVideoWriter("camera.avi"CV_FOURCC('M''J''P''G'), fpssize);CvSize size2 = cvSize((int)cvGetCaptureProperty(captureCV_CAP_PROP_FRAME_WIDTH),(int)cvGetCaptureProperty(captureCV_CAP_PROP_FRAME_HEIGHT));CvVideoWriterwriter2 = cvCreateVideoWriter("camera.mkv"CV_FOURCC('M''J''P''G'), fpssize2);IplImageout_frame = cvCreateImage(sizeIPL_DEPTH_8U, 3);IplImagerframe = frame;while(1) {frame = cvQueryFrame(capture);if(!frame) {break;}cvShowImage("camera"rframe); out_frame = doPyrDown(frame);cvWriteFrame(writerout_frame);cvWriteFrame(writer2frame); char c = cvWaitKey(10);if(c==27) break;} cvReleaseVideoWriter(&writer);} else {std::cout<<"NULL"<<std::endl;}cvReleaseCapture(&capture);cvDestroyWindow("camera");}
原创粉丝点击