专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
DSP
在DELPHI中设置摄像头参数
2019-07-13 17:31
发布
生成海报
站内文章
/
DSP
13611
0
1786
本例子借助了DSPACK包,只是为了方便,不要它也可以,直接调用COM。使用DirectShow9的功能。程序须引用DirectShow9, DSPack,DSUtil,ComCtrls,ActiveX单元。具体如下:
1、创建视频输入设备: var CapEnum: TSysDevEnum; begin CapEnum := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory); CammCount := CapEnum.CountFilters; //存在多少个视频输入源 end; 2、设置亮度、饱和度等 var hr:longint; pProcAmp: IAMVideoProcAmp; prop:TVideoProcAmpProperty; val:longint; flags: TVideoProcAmpFlags begin hr := CapEnum.GetBaseFilter(0).QueryInterface(IID_IAMVideoProcAmp, pProcAmp); if (Succeeded(hr)) then begin pProcAmp.Set_(prop,val,flags); end; end; 其中IAMVideoProcAmp,TVideoProcAmpProperty,TVideoProcAmpFlags均为DirectShow9定义的类型。 tagVideoProcAmpProperty = ( VideoProcAmp_Brightness, VideoProcAmp_Contrast, VideoProcAmp_Hue, VideoProcAmp_Saturation, VideoProcAmp_Sharpness, VideoProcAmp_Gamma, VideoProcAmp_ColorEnable, VideoProcAmp_WhiteBalance, VideoProcAmp_BacklightCompensation, VideoProcAmp_Gain ); 可用这里面的值指定要设置的参数。 tagVideoProcAmpFlags = ( {$IFNDEF COMPILER6_UP} VideoProcAmp_Flags_INVALID_0, VideoProcAmp_Flags_Manual, VideoProcAmp_Flags_Auto {$ELSE} VideoProcAmp_Flags_Manual = 1, VideoProcAmp_Flags_Auto {$ENDIF} ); 指定是手动设置还是自动设置,奇怪的是用VideoProcAmp_Flags_Manual值的话设置的是自动,要手动设置要用VideoProcAmp_Flags_Auto。 3、曝光度设置与其他不同,使用不同的接口 var hr:longint; pProcAmc: IAMCameraControl; val:longint; flags:TCameraControlFlags; begin hr := CapEnum.GetBaseFilter(0).QueryInterface(IAMCameraControl, pProcAmc); if (Succeeded(hr)) then begin pProcAmc.Set_(CameraControl_Exposure,val,flags); end; end; 参数可观察DirectShow9单元。
Ta的文章
更多
>>
在DELPHI中设置摄像头参数
0 个评论
【英语学习系统】神念科技脑电头带适配、脑电信号读取
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮