所以我需要的是像捕獲設備列表。如何讓用戶使用OpenCV選擇視頻錄製設備(網絡攝像頭)?
還有一些功能可以從用戶想要傳輸的設備上獲取。
如何用win32 C++控制檯應用程序中的openCV做這樣的事情?
所以我需要的是像捕獲設備列表。如何讓用戶使用OpenCV選擇視頻錄製設備(網絡攝像頭)?
還有一些功能可以從用戶想要傳輸的設備上獲取。
如何用win32 C++控制檯應用程序中的openCV做這樣的事情?
嘗試使用一些操作系統功能來枚舉網絡攝像頭。這可能需要一些工作,但這種方法將保證你每次都得到一個列表(不像OpenCV黑客,由於某種原因,這有時不起作用)。
OpenCV中(據我所知)不直接支持,但嘗試http://www.muonics.net/school/spring05/videoInput/
正如馬丁說,它不支持OpenCV的,但你可以使用一個小技巧。如果滿足您的需求,您可以通過調用cvCreateCameraCapture()
連續枚舉攝像頭,直到返回NULL,找出攝像頭的數量。
某事像這樣:
CvCapture *cap;
int n = 0;
while(1)
{
cap = cvCreateCameraCapture(n++);
if (cap == NULL) break;
cvReleaseCapture(&cap);
}
cvReleaseCapture(&cap);
return n-1;
現在你有一些相機的設備,所以你可以讓你的用戶選擇一個由即列表框中的指標。
缺點是OpenCV不會給你任何有關設備名稱的信息,所以如果你想完成這個任務,你應該看看微軟的DirectShow或Martin提出的庫。
在我的電腦上,無論我放置什麼索引,它都會返回默認攝像頭,儘管我只連接了2個攝像頭。 – xandy 2013-10-09 11:45:11