我正在使用OpenCV2.2与videoInput。 我想升级到OpenCV2.3.1,其中videoInput显然已经合并到OpenCV2.3中。
我的问题是,似乎没有listdevices()函数返回所有可用的video源。
有人知道新的等价物吗?
正如你所说videoinput自从2.3rc以来已经在OpenCV中合并了。
查看相关的源视频输入,看起来像OpenCV更新日志指定的那样。 虽然你的OpenCV是用它启用的是Cmake中的一个可配置的选项(选项是WITH_VIDEOINPUT
并且还要求它是一个WIN32版本,请看这里 )。
OpenCV在CvCaptureCAM_DShow::open
的实现中在内部调用listdevices作为VI.listDevices()
,videoInput类是CvCaptureCAM_DShow的受保护成员。
你可以使用访问listdevices函数
CvCapture* capture = cvCaptureFromCAM( CV_CAP_DSHOW ); capture->VI.listDevices();
看到这个 StackOverflow答案。 它目前不被OpenCV支持,因为它是跨平台的,并且相机枚举是非常特定于平台的(例如,v412枚举与DirectShow不同)。 但是,有人在2.2版本中提交了增强请求 。