OpenCV调用摄像头录像并保存下来

1#include <iostream> 2#include <cv.h> 3#include <cvaux.h> 4#include <highgui.h> 5#pragma comment(lib, "ml.lib") 6#pragma comment(lib, "cv.lib") 7#pragma comment(lib, "cvaux.lib") 8#pragma comment(lib, "cvcam.lib") 9#pragma comment(lib, "cxcore.lib") 10#pragma comment(lib, "cxts.lib") 11#pragma comment(lib, "highgui.lib") 12#pragma comment(lib, "cvhaartraining.lib") 13 14using namespace std; 15int main() 16{ 17 CvCapture* capture = cvCaptureFromCAM(-1); 18 CvVideoWriter* video = NULL; 19 IplImage* frame = NULL; 20 int n; 21 if(!capture) //如果不能打开摄像头给出警告 22 { 23  std::cout << "Can not open the camera." << std::endl; 24  return -1; 25 } 26 else 27 { 28  frame = cvQueryFrame(capture); //首先取得摄像头中的一帧 29  video = cvCreateVideoWriter("camera.avi", CV_FOURCC('X', 'V', 'I', 'D'), 25, 30   cvSize(frame->width,frame->height)); //创建CvVideoWriter对象并分配空间 31  //保存的文件名为camera.avi,编码要在运行程序时选择,大小就是摄像头视频的大小,帧频率是32 32  if(video) //如果能创建CvVideoWriter对象则表明成功 33  { 34   cout<<"VideoWriter has created."<<endl; 35  } 36  cvNamedWindow("Camera Video",1); //新建一个窗口 37  int i = 0; 38  while(<= 200) // 让它循环200次自动停止录取 39  { 40   frame = cvQueryFrame(capture); //从CvCapture中获得一帧 41   if(!frame) 42   { 43    std::cout << "Can not get frame from the capture." << std::endl; 44    break; 45   } 46   n = cvWriteFrame(video, frame); //判断是否写入成功,如果返回的是1,表示写入成功 47   std::cout << n << std::endl; 48   cvShowImage("Camera Video",frame); //显示视频内容的图片 49   i++; 50   if(cvWaitKey(2) > 0)  51    break; //有其他键盘响应,则退出 52  } 53  cvReleaseVideoWriter(&video); 54  cvReleaseCapture(&capture); 55  cvDestroyWindow("Camera Video"); 56 } 57 return 0; 58}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Java获得今日零时零分零秒的时间(Date型)

publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS