簡體   English   中英

如何使用opencv獲取網絡攝像頭設備列表?

[英]How do I get a list of webcam devices using opencv?

我正在使用OpenCV2.2和videoInput。 我想升級到OpenCV2.3.1,其中videoInput顯然已合並到OpenCV2.3中。

我的問題是似乎沒有listdevices()函數來返回所有可用的視頻源。

有人知道新的等價物嗎?

正如你所說,自從2.3rc以來,videoinput已經在OpenCV中合並。

查看相關視頻輸入似乎是在OpenCV更改日志指定的highgui中。 雖然你的OpenCV是否是在啟用它的情況下構建的,但是Cmake中的一個可配置選項(選項是WITH_VIDEOINPUT並且還要求它是WIN32版本,請參見此處 )。

OpenCV在內部調用listdevices作為VI.listDevices() CvCaptureCAM_DShow::open實現中的VI.listDevices() ,並且videoInput類是CvCaptureCAM_DShow的受保護成員。

您可以使用獲取訪問列表設備功能

 CvCapture* capture = cvCaptureFromCAM( CV_CAP_DSHOW );
 capture->VI.listDevices();

請參閱 StackOverflow答案。 OpenCV目前不支持它,因為它是跨平台的,並且攝像機枚舉是非常特定於平台的(例如,v4l2枚舉與DirectShow不同)。 但是,有人在一段時間內提交了針對2.2版的增強請求

我編寫了一個類,允許使用DirectShow接口和枚舉器枚舉所有設備。 雖然它只適用於Windows,但它允許您獲取“友好設備名稱”列表以及您需要創建的ID,例如VideoCapture對象。

代碼在這里:

https://github.com/studiosi/OpenCVDeviceEnumerator

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM