opencv学习测试代码笔记

来源:互联网 发布:淘宝店旺铺是什么 编辑:程序博客网 时间:2024/06/05 06:51


一、从摄像头捕获视频、显示、存储捕获的视频序列

<span style="font-size:14px;">#include "stdafx.h"#include <cv.h>#include <cxcore.h>#include <highgui.h>int main( int argc, char** argv ){//声明IplImage指针IplImage* pFrame = NULL;//获取摄像头CvCapture* pCapture = cvCreateCameraCapture(-1);//只有一个摄像头使用-1即可//创建窗口cvNamedWindow("video", 1);pFrame=cvQueryFrame( pCapture );CvVideoWriter *pWriter;//定义CvVideoWriter型指针pWriter = cvCreateVideoWriter("E:\\test.avi",CV_FOURCC('D','I','V','X'),24,cvSize(pFrame->width,pFrame->height),1);cvWriteFrame(pWriter,pFrame);//写视频帧到文件E:\\test.avi   注意双斜杠//显示视屏int i=0;while(1){pFrame=cvQueryFrame( pCapture );if(!pFrame)break;cvShowImage("video",pFrame);cvWriteFrame(pWriter,pFrame);char c=cvWaitKey(33);//暂停33ms  等待按键按下if(c==113)break;//按下q键  则程序退出//i++;}cvReleaseCapture(&pCapture);cvReleaseVideoWriter(&pWriter);cvDestroyWindow("video");return 0;}</span>

二、实现与一类似的功能(但代码结构更加清晰合理)

#include "stdafx.h"#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>using namespace cv;void main(){VideoCapture capture(0);VideoWriter writer("e:\\VideoTest.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25.0, Size(640, 480));Mat frame;  //mat数据类型while (capture.isOpened()){capture >> frame;//流操作writer << frame;imshow("video", frame);if (cvWaitKey(20) == 27)  //按下回车键  程序退出{break;}}}

三、C++计算程序运行耗时(耗时的计算结果不会将期间程序等待的时间计算入内)

while (capture.isOpened()){int start=clock();capture >> frame;//流操作writer << frame;imshow("video", frame);if (cvWaitKey(10) == 113)  //按下q键  程序退出{break;}cout<<"程序执行过程耗时:"<<clock()-start<<"毫秒"<<endl; //将if语句注释起来,其执行结果和没有注释之前差不多}


0 0
原创粉丝点击