用Directshow来开发摄像头程序,怎么设置亮度,对比度等参数

wzckr 2011-10-21 07:48:44
摄像头已经可以用了,不过我想要在程序里加上亮度,对比等参数的设置,在网上找到的代码是这样的
C#代码是这样的
private void SetBrightness(IBaseFilter capFilter, int iBrightness)
{
IAMVideoProcAmp videoProcAmp = capFilter as IAMVideoProcAmp;
int Val;
DirectShowLib.VideoProcAmpFlags Flags = VideoProcAmpFlags.Auto;
videoProcAmp.Get(VideoProcAmpProperty.Brightness, out Val, out Flags);
if (m_brightness != 0)
{
videoProcAmp.Set(VideoProcAmpProperty.Brightness, m_brightness, Flags);
}
else
{
...
}
}

IAMVideoProcAmp videoProcAmp = capFilter as IAMVideoProcAmp;这一句我想改成vb.net 应该是
dim videoProcAmp as IAMVideoProcAmp 可是后面这一部分我就看不懂了,不知道要怎么办
这个接口要怎么写,请高手帮助,最好是有完整一点的代码,可是让我看清楚一点
...全文
563 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
y1053715398 2012-11-30
  • 打赏
  • 举报
回复
请问g_Brightness g_Contrast  这几个变量是怎么来的?
keepfool 2011-10-25
  • 打赏
  • 举报
回复
在DirectShow,对很多设置可以通过 IAMVideoProcAmp接口设置亮度、对比度等属性

下面m_pVideo是源设备Filter,


IAMVideoProcAmp *pProcAmp = 0;
hr = m_pVideo->QueryInterface(IID_IAMVideoProcAmp, (void**)&pProcAmp);
if(SUCCEEDED(hr))
{
long Min, Max, Step, Default, Flags, Val;

// 亮度.
if( g_Brightness > 0 )
{
hr = pProcAmp->GetRange(VideoProcAmp_Brightness, &Min, &Max, &Step,
&Default, &Flags);
if(SUCCEEDED(hr))
{
hr = pProcAmp->Get(VideoProcAmp_Brightness, &Val, &Flags);
Val = Min+(Max-Min)*g_Brightness/100;
pProcAmp->Set(VideoProcAmp_Brightness, Val, Flags);
}
}

//对比度
if( g_Contrast > 0 )
{
hr = pProcAmp->GetRange(VideoProcAmp_Contrast, &Min, &Max, &Step,
&Default, &Flags);
if(SUCCEEDED(hr))
{
hr = pProcAmp->Get(VideoProcAmp_Contrast, &Val, &Flags);
Val = Min+(Max-Min)*g_Contrast/100;
pProcAmp->Set(VideoProcAmp_Contrast, Val, Flags);
}
}

//饱和度
if( g_Saturation > 0 )
{
hr = pProcAmp->GetRange(VideoProcAmp_Saturation, &Min, &Max, &Step,
&Default, &Flags);
if(SUCCEEDED(hr))
{
hr = pProcAmp->Get(VideoProcAmp_Saturation, &Val, &Flags);
Val = Min+(Max-Min)*g_Saturation/100;
pProcAmp->Set(VideoProcAmp_Saturation, Val, Flags);
}
}
}

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧