利用directshow修改曝光、增益等参数。

本文介绍了如何利用DirectShow库修改相机的曝光和增益参数。通过引入DirectShowLib-2005.dll,修改capture代码,添加SetExposure和SetGain函数,并在SetupGraph函数中调用这两个函数,可以实现对相机曝光和增益的实时控制。
摘要由CSDN通过智能技术生成

引用dll:DirectShowLib-2005.dll

capture代码是网上搜的,若要修改相机参数,需要略做如下修改:

1.capture的构造函数以及要调用的相关函数增加需要修改的参数。

2.增加函数

    //修改曝光值;

    private void SetExposure(IBaseFilter capFilter, int iExposure)
    {
        IAMCameraControl cameraControl = capFilter as IAMCameraControl;
        DirectShowLib.CameraControlFlags eFlags = CameraControlFlags.Manual;
        cameraControl.Set(CameraControlProperty.Exposure, iExposure, eFlags);
    }

   //修改增益值;

    private void SetGain(IBaseFilter capFilter, int iGain)
    {
        IAMVideoProcAmp videoProcAmp = capFilter as IAMVideoProcAmp;
        DirectShowLib.VideoProcAmpFlags gFlags = VideoProcAmpFlags.Manual;
        videoProcAmp.Set(VideoProcAmpProperty.Gain, iGain, gFlags);
    }

3.在Capture的SetupGraph函数中加入下面代码

            SetGain(capFilter, iGain);
            SetExposure(capFilter, iExposure);

这样就可以实现曝光等参数的设置了。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值