设为首页 加入收藏

TOP

5.5.2 拉普拉斯掩模锐化(2)
2013-10-07 00:22:45 】 浏览:501
Tags:5.5.2 普拉斯

5.5.2  拉普拉斯掩模锐化(2)

3.函数调用

在视图类CDemoView中映射“拉普拉斯锐化”事件的处理函数:OnLaplacienSharp(),以下是CDemoView:: :OnLaplacienSharp()函数的代码实现。

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

if(pDib->m_nBitCount!=8&{
::MessageBox(0,"只处理灰度图像",MB_OK,0);
return ;
}
CImgEnhance imgnoise(pDib->GetDimensions(),pDib->m_nBitCount,
pDib->m_lpColorTable, pDib->m_pImgData);
int TempH, TempW, TempCX, TempCY;
float fCoef;
float Temp[9];
//设模板为平均模板
Temp[0]=-1.0;
Temp[1]=-1.0;
Temp[2]=-1.0;
Temp[3]=-1.0;
Temp[4]=9.0;
T[5]=-1.0;
T[6]=-1.0;
T[7]=-1.0;
T[8]=-1.0;
//初始化对话框变量
TH=3;
TW=3;
TCX=1;
TCY=1;
fCoef=1.0;
imgnoise.LapTlate(TH,TW,TCX,TCY,T,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(imgnoise.GetDimensions(),imgnoise.m_nBitCountOut,imgnoise.m_lpColorTable, imgnoise.m_pImgDataOut);
pDocNew->SetModifiedFlag(TRUE);
pDocNew->UpdateAllViews(pView);

Invalidate();
}

4.实验结果与分析

图5-10(a)显示了一幅花朵的图片,图5-10(b)显示了用图5-9(a)所示的拉普拉斯模板对该图像滤波后的结果。由图可以看出,将原始图像通过拉普拉斯变换后增强了图像中灰度突变处的对比度,使图像中小的细节部分得到增强并保留了图像的背景色调,使图像的细节比原始图像更加清晰。基于拉普拉斯变换的图像增强已成为图像锐化处理的基本工具。

 
图5-10  拉普拉斯方法的锐化结果

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇5.2.1 噪声来源 下一篇5.5.2 拉普拉斯掩模锐化(1)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目