opencv3.0+visualstudio2013,使用摄像头录制视频,保存视频,空格键控制开始录制,暂停录制,esc控制结束录制及视频中两种画线方式

opencv3.0提供了专门的摄像头的VideoCapture类,使用时直接实例化即可。

VideoCapture cap;

cap可以用来打开已有的视频文件,也可以用来打开摄像头录制视频。

cap.open(filename);//filename 是已有视频文件的路径
cap.open(0);//0是调用的摄像头的编号

opencv3.0 提供了专用的保存视频的类VideoWriter,使用时直接实例化即可。

VideoWriter writer;
writer.open(filename,CV_FOURCC('P','I','M','1'),30.0.Size(640,480));
//filename是视频文件的完整路径"XX//xx//xxx.avi",CV_FOURCC('P','I','M','1')是视频的编码方式,30.0是视频的帧率,Size(640,480)是每一帧图像的大小

视频的帧率和每一帧图像的大小,也可以直接通过以下方式获取

VideoCapture cap;
cap.open(filename);
double rate = cap.get(CV_CAP_PROP_FPS);//获取帧率
cap.get(CV_CAP_PROP_FRAME_HEIGHT);//获取视频高度
cap.get(CV_CAP_PROP_FRAME_WIDTH);//获取宽度

定义鼠标事件----画直线

bool got_line = false; 
//全局变量 
Point beginPoint = Point(0, 0);//初始化的(0,0) 

bool got_beigin_point = false; 

Point endPoint = Point(0, 0);//初始化(0,0) 

void mouseLineHandler(int event, int x, int y, int flags, void *param) 
{ 
	switch (event) 
	{ 
		case CV_EVENT_LBUTTONDOWN: 
 
			beginPoint = Point(x, y); 
 
			endPoint = beginPoint; 
 
			got_beigin_point = true; 

			break; 
 
		case CV_EVENT_MOUSEMOVE: 
 
			if (got_beigin_point) 

			{ 
		     	endPoint = Point(x, y); 
			} 

			break; 

		case CV_EVENT_LBUTTONUP: 

			got_line = true; 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值