一個簡單的方法將與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