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