因為要做雙目視覺,所以要用多個攝像頭。
多攝像頭的方案有兩種,一種是usb攝像頭,第二種是網口攝像頭。
按開發環境分windows和linux。
我先測試win7下的多攝像頭。因為筆記本有4個usb口,我手頭有兩個羅技c170和另乙個牌子的webcam,加上我筆記本自帶的攝像頭,另外有乙個飈王usb2.0hub。
測試1:
將兩個羅技c170插在我筆記本的usb上,opencv執行後可同時開啟三個攝像頭。
測試2:
兩個羅技插在usbhub上,再連到電腦。這時不能開啟所有攝像頭。
測試3:
乙個羅技,乙個普通webcam插在usbhub上,再連到電腦。同樣不可開啟。
根據上面的測試初步判斷是usbhub不能同時傳兩路影象出來,但不是速度不夠,而是位址問題(個人猜測)。
測試4:
還能做的:試一下usb3.0的hub,不知道能不能解決這個問題。
附**:
#include #include using namespace std;
int main()
img1 = cvqueryframe(cap1);
if(!img1)
img2 = cvqueryframe(cap2);
if(!img2)
cvshowimage("camera0", img0);
cvshowimage("camera1", img1);
cvshowimage("camera2", img2);
char c = cvwaitkey(33);
if(c == 27)
break;
} cvreleasecapture(&cap0);
cvreleasecapture(&cap1);
cvreleasecapture(&cap2);
cvdestroywindow("camera0");
cvdestroywindow("camera1");
cvdestroywindow("camera2");
return 0;
}
附**:
#include #include using namespace std;
int main()
img1 = cvqueryframe(cap1);
if(!img1)
img2 = cvqueryframe(cap2);
if(!img2)
cvshowimage("camera0", img0);
cvshowimage("camera1", img1);
cvshowimage("camera2", img2);
char c = cvwaitkey(33);
if(c == 27)
break;
} cvreleasecapture(&cap0);
cvreleasecapture(&cap1);
cvreleasecapture(&cap2);
cvdestroywindow("camera0");
cvdestroywindow("camera1");
cvdestroywindow("camera2");
return 0;
}
OPENCV讀取攝像頭
opencv highgui cvcreatecameracapture 或cvcapturefromcam windows 中都是由較為低效的 vfw機制實現的,不適合在最終產品中使用。在 windows 中使用directshow opencv 中文網的 yushiqi 提供了乙個基於 dire...
OpenCV攝像頭讀取
在mac下面使用預設的opencv讀取攝像頭程式會報錯 int main int,char videocapture cap 0 open the default camera if cap.isopened check if we succeeded return 1 mat edges name...
OpenCV 啟動攝像頭
1.cvcreatecameracapture 從攝像頭或者檔案中抓取並返回一幀 iplimage cvqueryframe cvcapture capture 函式cvqueryframe從攝像頭或者檔案中抓取一幀,然後解壓並返回這一幀。這個函式僅僅是函式cvgrabframe和函式cvretri...