概述
之前找了好久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读取高帧率摄像头所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复