我是靠谱客的博主 善良鼠标,最近开发中收集的这篇文章主要介绍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<opencv2opencv.hpp>
#include<highguihighgui.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;
}

老版本链接点击打开链接

最后

以上就是善良鼠标为你收集整理的Opencv VideoCapture读取高帧率摄像头的全部内容,希望文章能够帮你解决Opencv VideoCapture读取高帧率摄像头所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部