Opencv VideoCapture读取高帧率摄像头

 

之前找了好久Opencv与DirectShow结合使用的程序,甚至动用了2009年大神的代码,今天发现Opencv自己已经可以支持DirectSHOW了,使用VideoCapture类

代码如下:

/*

By longxiaoyue wunnnn@hotmail.com
使用directshow,可以读取100fps640*480,MJPG压缩视频,但是不能加上显示,否则只能到60帧
设置要符合自己的摄像头才有效
优点:读出来的是类,比老版本方便。

测试环境  i7 5557u vs2017  DebugX64 OpenCV3.3
*/


#include<opencv2\opencv.hpp>
#include<highgui\highgui.hpp>
using namespace cv;
using namespace std;

int main()
{
	VideoCapture cap;
	cap = VideoCapture(CV_CAP_DSHOW);	//使用DirectShow
	cap.open(1);						//这是我的USB摄像头
	if (!cap.isOpened())
		return -1;
	cap.set(CV_CAP_PROP_FOURCC, CV_FOURCC('M', 'J', 'P', 'G'));//设置为MJPG格式
	cap.set(CV_CAP_PROP_FRAME_HEIGHT, 640);
	cap.set(CV_CAP_PROP_FRAME_WIDTH, 480);
	TickMeter tm;

	while (1)
	{

		tm.reset();
		tm.start();
		Mat frame;
		for (int i = 0; i < 100; i++)//Is not accuracy when I count once.
		{
			cap >> frame;
			imshow("frame", frame);
			if(waitKey(1)==27);//ESC for quit
		}
		tm.stop();
		cout << 100 / tm.getTimeSec() << "fps" << endl;//输出帧率
	}
	return 0;
}

老版本链接点击打开链接

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值