一个简单的方法将与openFrameworks,其中有一个叫ofVideoGrabber
类中去。使用listDevices()
方法,您可以列出所有可用的摄像头并选择您想使用的摄像头。
您需要的下一件事:ofxCv
是openFrame的替代OpenCV包装,您可以使用它将图像抓取到ofVideoGrabber
转移到OpenCV或其他处理。
所以你可以做这样的事情:
// Inside Foo.h
#include "ofxCv.h"
// import namespaces for OpenCV & ofxCv
using namespace cv;
using namespace ofxCv;
// vars we need
ofVideoGrabber vidGrabber;
ofImage inputImg;
Mat matImg;
// setup video grabber
vidGrabber.setVerbose(true);
vidGrabber.setDeviceID(1); // choose the right one via vidGrabber.listDevices()
vidGrabber.initGrabber(320,240,false);
int grabW = vidGrabber.width;
int grabH = vidGrabber.height
// grab current frame
vidGrabber.grabFrame();
inputImg.setFromPixels(vidGrabber.getPixels(), 320, 240, OF_IMAGE_COLOR);
// get cv::Mat
matImg = toCv(inputImg).clone();
... further processing ...
希望它能帮助!
来源
2012-03-11 12:57:57
dom
非windows平台用户呢? – bubble 2012-03-10 19:09:12
@bubble看看我的评论;) – dom 2012-03-11 12:58:16