现在进行windows上视频采集,主要的库有 opencv ffmpeg videoinput。
下面简单介绍下 videoinput
官网: http://www.muonics.net/school/spring05/videoInput/
源代码:https://github.com/ofTheo/videoInput
videoinput 正常同时进行多路采集,通过传递设备索引号即可。
直接上简单的代码:
复制代码
1videoInput VI;
复制代码
1
复制代码
1
复制代码
1int devideNumber = 0;
复制代码
1
复制代码
1VI.setIdealFramerate(devideNumber, 50);
复制代码
1
复制代码
1VI.setupDevice(devideNumber, 320, 240);
复制代码
1
复制代码
1
复制代码
1int width = VI.getWidth(devideNumber);
复制代码
1int height = VI.getHeight(devideNumber);
复制代码
1int size = VI.getSize(devideNumber);
复制代码
1
复制代码
1
复制代码
1unsigned char * bgr = new unsigned char[size];
复制代码
1
复制代码
1while (true) {
复制代码
1//to get the data from the device first check if the data is new
复制代码
1if(VI.isFrameNew(devideNumber)){
复制代码
1VI.getPixels(devideNumber, bgr, false, false); //fills pixels as a BGR (for openCV) unsigned char array - no flipping
复制代码
1} else {
复制代码
1Sleep(10);
复制代码
1continue;
复制代码
1}
复制代码
1}
在Qt的mingw 环境下,直接包含 videoinout.h videoinout.cpp,
需要这样修改:
在遇到HEADER 找不到时,替换成 PBITMAPINFOHEADER 即可。
Qt的工程文件如下:
复制代码
1#-------------------------------------------------
复制代码
1#
复制代码
1# Project created by QtCreator 2014-11-16T05:09:09
复制代码
1#
复制代码
1#-------------------------------------------------
复制代码
1
复制代码
1QT += core gui
复制代码
1
复制代码
1
复制代码
1greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
复制代码
1
复制代码
1
复制代码
1TARGET = VideoInput_Test
复制代码
1
复制代码
1TEMPLATE = app
复制代码
1
复制代码
1
复制代码
1
复制代码
1LIBS += -L$$PWD/libs/DShow/lib -ldxguid -lole32 -loleaut32 -lstrmiids -luuid -lstrmbasd -lstrmbase
复制代码
1LIBS += -L$$PWD/libs/glfw -lglfw
复制代码
1
复制代码
1
复制代码
1SOURCES += main.cpp
复制代码
1mainwindow.cpp
复制代码
1videoInput.cpp
复制代码
1
复制代码
1
复制代码
1HEADERS += mainwindow.hpp
复制代码
1videoInput.h
复制代码
1
复制代码
1
复制代码
1FORMS += mainwindow.ui
复制代码
1
最后
以上就是虚心蜻蜓最近收集整理的关于windows 视频采集开源库的全部内容,更多相关windows内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复