opencv VideoCapture读取视频帧率、获取摄像头数据

opencv是利用ffmpeg来对视频进行解码出每一帧,然后来显示的。这里直接给出两个函数,大家调用2个函数就可以实现对视频的帧率的读取和 摄像头帧的获取。

读取视频:

void readVideo(String path)
{

	VideoCapture capture(path);

	while (true)
	{
		Mat frame;
		capture >> frame;

		if (frame.empty()) {
			break;
		}
		int h = frame.rows;
		int w = frame.cols;
		const char *name = "video";
		// 这里定义为0,则窗口图像会随着窗口压缩,为1则不会,若窗口小于图像没,则图像显示不全
		cvNamedWindow(name,0);
		cvResizeWindow(name, w/2, h/2);
		imshow(name, frame);
		//等30ms显示下一帧
		waitKey(30);
	}

}

读取摄像头数据:


void readCameraData()
{
		VideoCapture capture(0);

		while (true)
		{
			Mat frame;
			capture >> frame;

			if (frame.empty()) {
				break;
			}
			int h = frame.rows;
			int w = frame.cols;
			const char *name = "video";
			cvNamedWindow(name, 0);
			cvResizeWindow(name, w / 1, h / 1);
			imshow(name, frame);
			//等30ms显示下一帧
			waitKey(30);
		}
	
}

其实摄像头还是视频,主要在于初始化videocampture的时候,传入的参数,若为字符串视频路径,则是读入视频,传入 整数 0 则表示摄像头。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值