如何使用IAMVideoProcAmp设置相机亮度?

本文关键字:亮度 相机 设置 何使用 IAMVideoProcAmp | 更新日期: 2023-09-27 18:05:35

我试图使用IAMVideoProcAmp (directshow.net c#)来设置微软相机(lifecam studio)的亮度。我引用这里的解。这个解决方案使用IAMVideoProcAmp来设置相机亮度。当我通过调用

连接到设备后

DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);

设置相机亮度。但是当我调用IAMVideoProcAmp的Set()函数时,它似乎不工作

int Set(
          VideoProcAmpProperty Property, // VideoProcAmpProperty
          int lValue,          // Value to set
          VideoProcAmpFlags Flags  // VideoProcAmp_Flags_* 
       );

我尝试为这个函数设置各种有效值,但对相机没有影响。我可以通过函数得到相机亮度属性的最大/最小/默认值:

int GetRange(
            VideoProcAmpProperty Property,         // Which property to query
            out int pMin,          // Range minimum
            out int pMax,          // Range maxumum
            out int pSteppingDelta,// Step size
            out int pDefault,      // Default value
            out VideoProcAmpFlags pCapsFlags     // VideoProcAmpFlags
            );

它给了我max = 255 min = 30 default = 133 pCapsFlags = manual

我还使用了微软的lifecam软件来调整亮度,它在相机上立即生效。但亮度的最大/最小值为max = 2.5, min = -2.5请告诉我如何设置相机的亮度,为什么我得到的最大/最小值与属性页上的值不同?

非常感谢。

如何使用IAMVideoProcAmp设置相机亮度?

最后我发现IAMVideoProcAmp::Set是不工作的,因为微软的lifecam软件。该软件与相机驱动程序一起安装。这个软件的TrueColor功能是这个问题的关键,当我从这个软件打开TrueColor时,我不能使用IAMVideoProcAmp::Set来调整我的应用程序的亮度了。只要卸载微软lifecam,它就能像我希望的那样工作。