【问题标题】:How can i set brightness for camera using IAMVideoProcAmp?如何使用 IAMVideoProcAmp 设置相机的亮度?
【发布时间】:2013-11-14 21:21:10
【问题描述】:

我正在尝试使用 IAMVideoProcAmp (directshow.net C#) 来设置微软相机 (lifecam studio) 的亮度。 我参考了here 的解决方案。此解决方案使用 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 value to camera,然后调用 IAMVideoProcAmp::Get 我收到了我设置的正确值,但是相机的亮度没有改变。
  • 你能检查这些示例代码是否正确,我参考这里的示例代码dailycode.info/Blog/post/2009/02/05/…
  • 其他一些属性在我设置值后立即在相机上生效,但 VideoProcAmpProperty.Brightness 无效。请帮帮我。

标签: c# webcam directshow.net


【解决方案1】:

最后我发现IAMVideoProcAmp::Set 不工作,因为 Microsoft lifecam 软件。该软件随相机驱动程序的安装一起安装。这个软件的 TrueColor 功能是这个问题的关键,当我从这个软件打开 TrueColor 时,我不能再使用IAMVideoProcAmp::Set 来调整我的应用程序的亮度。只需卸载 Microsoft lifecam,它就会如我所愿。希望这些信息能帮助有人遇到同样的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多