opencv实现定时录像功能
- 更新时间:2023-01-13 15:10:18
- 编辑:訾宏伯
opencv作为一款强大的机器视觉库,以其简便性得到了各图像处理开发人员的青睐。现在就给大家介绍如何用opencv实现定时录像并以实际时间作为文件名保存。之前网上已经有一些类似的代码,但是大多数网友反映程序无法执行,主要分析有两个原因。电脑上未安装视频编码器,这里推荐大家XviD,网上不好下载可以私信我或是留下邮箱,我统一发送。然后在选择编码格式上,我选择的是'X', 'V', 'I', 'D'格式,也就是我们常见的avi格式。
#include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> #include <time.h> #include <Windows.h> #include <Mmsystem.h> #include "stdio.h" int timea=100000; using namespace std; /*void times() { SYSTEMTIME sys_time; //将变量值设置为本地时间 GetLocalTime( &sys_time ); //输出时间 printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n",sys_time.wYear, sys_time.wMonth, sys_time.wDay, sys_time.wHour, sys_time.wMinute, sys_time.wSecond, sys_time.wMilliseconds, sys_time.wDayOfWeek); // system("time"); // // system("pause"); return 0; } */ int main() { CvCapture* capture=cvCaptureFromCAM(0); CvVideoWriter* video=NULL; IplImage* frame=NULL; int n; if(!capture) //如果不能打开摄像头给出警告 { cout<<"Can not open the camera."<<endl; return -1; } else { frame=cvQueryFrame(capture); //首先取得摄像头中的一帧 int c=0; SYSTEMTIME sys_time; //将变量值设置为本地时间 GetLocalTime( &sys_time ); char buf[1024]; sprintf(buf,"camera-%4d-%2d-%02d-%02d-%02d-%02d.avi",sys_time.wYear,sys_time.wMonth,sys_time.wDay, sys_time.wHour,sys_time.wMinute, sys_time.wSecond); video=cvCreateVideoWriter(buf, CV_FOURCC('X', 'V', 'I', 'D'), 25, cvSize(frame->width,frame->height)); //创建CvVideoWriter对象并分配空间 //保存的文件名为camera.avi,编码要在运行程序时选择,大小就是摄像头视频的大小,帧频率是32 if(video) //如果能创建CvVideoWriter对象则表明成功 { cout<<"VideoWriter has created."<<endl; } cout<<"set the record time\n"<<endl;//设置录像时间 cin>>timea; int ti=timea*25; cvNamedWindow("Camera Video",1); //新建一个窗口 int i = 0; while(i <= ti) // 让它循环ti次自动停止录取 { frame=cvQueryFrame(capture); //从CvCapture中获得一帧 if(!frame) { cout<<"Can not get frame from the capture."<<endl; break; } n=cvWriteFrame(video,frame); //判断是否写入成功,如果返回的是1,表示写入成功 // cout<<n<<endl; cvShowImage("Camera Video",frame); //显示视频内容的图片 i++; if(cvWaitKey(2)>0) break; //有其他键盘响应,则退出 } cvReleaseVideoWriter(&video); //如果不释放则春不上 cvReleaseCapture(&capture); cvDestroyWindow("Camera Video"); } return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。
相关教程
-
opencv 获取rtsp流媒体视频的实现方法
这篇文章主要介绍了opencv 获取rtsp流媒体视频的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
发布时间:2021-04-26
-
Python+OpenCV实现角度测量的示例代码
给网友朋友们带来一篇关于Python OpenCV的教程,本文介绍如何使用python语言实现角度测量,程序包括鼠标选点、直线斜率计算、角度计算三个子程序和一个主程序,感兴趣的可以了解一下
发布时间:2022-12-06
-
Python+OpenCV+pyQt5录制双目摄像头视频的实例
为网友们分享了关于Python OpenCV的教程,今天小编就为大家分享一篇Python+OpenCV+pyQt5录制双目摄像头视频的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2022-09-07
-
python测试opencv时imread导致的错误解决方法
今天小编就为大家分享一篇解决python测试opencv时imread导致的错误问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2019-06-05
-
Python中Opencv用cuda加速方法实例
在本篇内容里我们给大家整理了关于Python中Opencv用cuda加速方法以及实例代码,需要的朋友们跟着学习参考下吧。
发布时间:2019-07-02
-
使用opencv实现车道线检测实战代码
这篇文章主要介绍了opencv车道线检测实战,效果非常逼真,代码简单易懂,对opencv车道线检测实战代码感兴趣的朋友一起看看吧
发布时间:2022-04-06
-
Python OpenCV处理图像滤镜和图像运算用法知识点
这篇文章主要为大家详细介绍了Python OpenCV处理图像之滤镜和图像运算,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2019-08-15