私はvideoInputでOpenCV2.2を使用しています。 videoInputが明らかにOpenCV2.3にマージされているOpenCV2.3.1にアップグレードしたいと思います。
私の問題は、利用可能なすべてのビデオソースを返すlistdevices()関数がないように見えることです。
誰かが新しい同等物を知っていますか?
あなたが言ったように、videoinputは2.3rc以来OpenCVにマージされています。
関連する source を見ると、OpenCVの変更ログで指定されているようにvideoinputはhighguiにあるように見えます。 OpenCVが有効になってビルドされているかどうかは、Cmakeで構成可能なオプションです(オプションは_WITH_VIDEOINPUT
_であり、WIN32ビルドである必要があります。 ここ を参照してください)。
OpenCVは、_CvCaptureCAM_DShow::open
_の実装でVI.listDevices()
として内部的にlistdevicesを呼び出し、videoInputクラスはCvCaptureCAM_DShowの保護されたメンバーです。
あなたはを使用してアクセスリストデバイス機能を取得することができます
_ CvCapture* capture = cvCaptureFromCAM( CV_CAP_DSHOW );
capture->VI.listDevices();
_
DirectShowインターフェイスと列挙子を使用してすべてのデバイスを列挙できるクラスをコーディングしました。 Windowsでのみ機能しますが、「わかりやすいデバイス名」のリストと、作成する必要のあるID(VideoCaptureオブジェクトなど)を取得できます。
コードはここにあります: