设为首页 加入收藏

TOP

5.4.2 加权平均
2013-10-07 00:22:58 来源: 作者: 【 】 浏览:58
Tags:5.4.2 加权 平均

5.4.2  加权平均

1.基本理论

对于同一尺寸的模板,可对不同位置的系数采用不同的数值。一般认为离对应模板中心像素近的像素应对滤波结果有较大贡献,所以接近模板中心的系数可较大,而模板边界附近的系数应较小。在实际应用中,为保证各模板系数均为整数以减少计算量,常取模板周边最小的系数为1,而取内部的系数成比例增加,中心系数最大。一种常用的加权平均方法是根据系数与模板中心的距离反比地确定其他内部系数的值,常用的模板为 等;还有一种常用方法是根据二维高斯分布来确定各系数值,常称为高斯模板,模板为: 。相对于邻域平均的卷积,加权平均也成为归一化卷积,表示两幅图像之间的卷积,一是需要处理的图像,二是有加权值的图像,写成矩阵形式为: ,其中H是卷积模板,F是需要处理的图像,W是有加权值的图像,分母起归一化的作用。用卷积模板H进行的归一化卷积将图像F和图像W变换为一幅新图像G


在实际应用中,可以根据具体的局部图像结构来确定卷积模板,使加权值成为自由调节参数,应用比较灵活,但模板不能分解,计算效率不高。

2.算法实现

CImgEnhance类中的成员函数AvgTemplate()实现图像的加权平均操作,就是先构造一个权值模板,在对灰度图像进行加权平均时直接调用AvgTemplate()函数即可,AvgTemplate()函数在“邻域平均法”一节中已经给出。

3.函数调用

在视图类CDemoView中映射“加权平滑”事件的处理函数OnPowerSmooth()。以下是CDemoView:: OnPowerSmooth()函数的代码实现。

 void CDemoView::OnPowerSmooth() 
{
CDemoDoc *pDoc=GetDocument();
ImgCenterDib *pDib=pDoc->GetPDib();

if(pDib->m_nBitCount!=8){
::MessageBox(0,"只处理灰度图像",MB_OK,0);
return ;
}

CImgEnhance imgSmooth(pDib->GetDimensions
(),pDib->m_nBitCount,
pDib->m_lpColorTable, pDib->m_pImgData);
int TempH, TempW, TempCX, TempCY;
float fCoef;
float Temp[25];
//设模板为平均模板
Temp[0]=0.0;
Temp[1]=1.0;
Temp[2]=2.0;
Temp[3]=1.0;
Temp[4]=0.0;
 Temp[5]=1.0;
Temp[6]=2.0;
Temp[7]=4.0;
Temp[8]=2.0;
Temp[9]=1.0;
 Temp[10]=2.0;
Temp[11]=4.0;
Temp[12]=8.0;
Temp[13]=4.0;
Temp[14]=2.0;
 Temp[15]=1.0;
Temp[16]=2.0;
Temp[17]=4.0;
Temp[18]=2.0;
Temp[19]=1.0;
 Temp[20]=0.0;
Temp[21]=1.0;
Temp[22]=2.0;
Temp[23]=1.0;
Temp[24]=0.0;
//初始化对话框变量
TempH=5;
TempW=5;
TempCX=2;
TempCY=2;
fCoef=(float)(1.0/48.0);
 imgSmooth.AvgTemplate(TempH,TempW,
TempCX,TempCY,Temp,fCoef);

CMainFrame* pFrame = (CMainFrame *)
(AfxGetApp()->m_pMainWnd);
pFrame->SendMessage(WM_COMMAND, ID_FILE_NEW);

CDemoView* pView=(CDemoView*)pFrame->
MDIGetActive()->GetActiveView();
CDemoDoc* pDocNew=pView->GetDocument();
ImgCenterDib *dibNew=pDocNew->GetPDib();

dibNew->ReplaceDib( imgSmooth.GetDimensions(),
imgSmooth.m_nBitCountOut, imgSmooth.
m_lpColorTable,  imgSmooth.m_pImgDataOut);
pDocNew->SetModifiedFlag(TRUE);
pDocNew->UpdateAllViews(pView);

Invalidate();
}

4.实验结果与分析

图5-4显示的是利用模板为 的5×5加权平均法对含有噪声的图像进行平滑的实验结果。从实验结果可以看出,与邻域平均法相比较,加权平均法使处于掩模中心位置的像素比其他像素的权值要大,使距离掩模中心较远位置的像素参与平滑的贡献降低,这样就减小了平滑带来的图像模糊效应,所以比邻域平均法平滑后的图像的边缘细节要相对清晰。

 
(点击查看大图)图5-4  5×5加权平均法与邻域平均法的平滑实验结果对比
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇5.1 图像增强类 下一篇5.3.1 灰度校正

评论

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