(添加KSPROPERTY_CAMERACONTROL_SCANMODE
到KSPROPERTY_VIDCAP_CAMERACONTROL
?)
使用网络摄像头,我得到一个隔行扫描的视频。通过使用 videoInput 库(作为 OpenCV 的一部分)的 DirectShow 来访问该网络摄像头。
我找不到使用 OpenCV 中当前可用的选项/枚举来控制该(隔行)模式的方法,所以我深入研究了 MSDN 并发现了以下内容:
IAMCameraControl
接口可用于获取/设置各种属性,只要它们在PROPSETID_VIDCAP_CAMERACONTROL
(http://msdn.microsoft.com/en-us/library/dd389145(v=vs.85).aspx#methods)中列出PROPSETID_VIDCAP_CAMERACONTROL
列出了 3 个枚举块(一个用于“USB 视频类之前,一个用于 UVC,一个用于 Win8),其中一个是我感兴趣的值!它是一个KSPROPERTY_CAMERACONTROL_SCANMODE
(http://msdn.microsoft.com/ zh-CN/图书馆/ff567802(v=vs.85).aspx )- 我安装了 Windows 7.a SDK,在
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\strmif.h
文件中我看到的是一个值列表,这些值仅涵盖“原始”集,即pre-UVC,因此它无法控制隔行扫描模式。该文件中的枚举类似于 MSDN 站点中的这个:http: //msdn.microsoft.com/en-us/library/windows/desktop/dd318253 (v=vs.85).aspx - 然后我找到了这个论坛,该人声称“我必须更新 CameraControlProperty 枚举”以添加所需的属性,它对他有用(http://sourceforge.net/p/directshownet/discussion/460697/thread/562ef6cf / )
我的问题是: 如何?:) 如何添加系统应该支持的所需值(或一堆值)?我错过了什么?
MSDN 好像是把卡贴在身上,没有透露太多,所以请这里的好心人帮忙。
我希望那里有人已经想出了如何做到这一点并可以分享智慧。
我的最终目标是使用 OpenCV 的 videoInputsetVideoSettingCamera()
来控制隔行扫描(这样我得到的图像就没有那些黑线)