设为首页 加入收藏

TOP

9.1.3 采集参数的设置
2013-10-07 00:41:19 来源: 作者: 【 】 浏览:49
Tags:9.1.3 采集 参数 设置

9.1.3  采集参数的设置

采集前需要对要采集的视频格式、图像质量进行设置,如视频的分辨率、帧率和数据格式,图像的亮度、色度和饱和度参数设置等。下面分别对这两种设置进行讲述。

1.视频格式设置

对采集设备的参数进行配置,首先确定设备的类型:VFW、WDM驱动模型。目前流行的采集设备大部分采用WDM模式,采集设备在DirectShow中被当做一个滤波器组件,所以配置采集设备就是对该滤波器的引脚进行设置。在确保滤波器链表完全建立前,可以使用如下的过程配置视频格式。

/*配置摄像头数据源格式:分辨率、RGB/I420等*/
void CCaptureClass::ConfigCameraPin(HWND hwndParent)
{
HRESULT hr;       //返回值
IAMStreamConfig *pSC;    //流配置接口
ISpecifyPropertyPages *pSpec;  //属性页接口
//只有停止后,才能进行引脚属性的设置
m_pMC->Stop();
//首先查询捕获CAPTURE、视频Video接口
hr = m_pCapture->FindInterface(&PIN_CATEGORY_CAPTURE,
&MEDIATYPE_Video, m_pBF,
IID_IAMStreamConfig, (void **)&pSC);
CAUUID cauuid;       //所有属性页结构体
hr = pSC->QueryInterface(IID_ISpecifyPropertyPages, (void **)&pSpec);
if(hr == S_OK)
{
hr = pSpec->GetPages(&cauuid);  //获取所有属性页
//显示属性页
hr = OleCreatePropertyFrame(hwndParent, 30, 30, NULL, 1,
(IUnknown **)&pSC, cauuid.cElems,
(GUID *)cauuid.pElems, 0, 0, NULL);
//释放内存、资源
CoTaskMemFree(cauuid.pElems);
pSpec->Release();
pSC->Release();
}
//回复运行
m_pMC->Run();
}
上述代码首先以视频捕获方式获取流配置接口,在该接口下查询属性页接口,然后获取所有属性页,接着显示获取的属性页,最后释放资源。在显示了属性页后用户就可以对其属性页的对话框进行设置了,运行后的结果如图9-1所示。
 
(点击查看大图)图9-1  视频格式属性设置

2.图像参数设置

图像参数设置类似于视频格式配置,根据设备的驱动类型VFW、WDM使用不同的技术配置设备的参数,这里我们同样假定采集设备的类型为WDM,配置过程如下。

/*配置图像参数:亮度、色度、饱和度等*/
void CCaptureClass::ConfigCameraFilter(HWND hwndParent)
{
HRESULT hr=0;
ISpecifyPropertyPages *pProp;
hr = m_pBF->QueryInterface(IID_ISpecifyPropertyPages, (void **)&pProp);
if (SUCCEEDED(hr))
{
//获取滤波器名称和IUnknown接口指针
FILTER_INFO FilterInfo;
hr = m_pBF->QueryFilterInfo(&FilterInfo);
IUnknown *pFilterUnk;
m_pBF->QueryInterface(IID_IUnknown, (void **)&pFilterUnk);
//显示该页
CAUUID caGUID;
pProp->GetPages(&caGUID);
OleCreatePropertyFrame(
hwndParent,    //父窗口
0, 0,                 //Reserved
FilterInfo.achName, //对话框标题
1,                    //该滤波器的目标数目
&pFilterUnk,       //目标指针数组
caGUID.cElems,      //属性页数目
caGUID.pElems,      //属性页的CLSID数组
0,                     //本地标识
0, NULL             //Reserved
);
//释放内存、资源
CoTaskMemFree(caGUID.pElems);
pFilterUnk->Release();
FilterInfo.pGraph->Release();
pProp->Release();
}
m_pMC->Run();
}
捕获滤波器属性是对图像参数进行配置和修改,包括图像参数、白平衡和模式控制。这些参数一旦更改,预览的视频图像马上起作用。当调整到合适的情况下,单击"确定"按钮,关闭该对话框,运行后的结果如图9-2所示。
 
(点击查看大图)图9-2  运行后的结果
【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇9.2.1 GraphEdit模拟实现 下一篇9.1.1 采集设备的枚举

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: