Vc++数字图像处理Matlab语音信号及信号处理 联系客服

发布时间 : 星期日 文章Vc++数字图像处理Matlab语音信号及信号处理更新完毕开始阅读26ad93fa4693daef5ef73d15

BeginWaitCursor(); // 显示等待光标 CDIPDemoDoc* pDoc = GetDocument(); // 获取文档 ASSERT_VALID(pDoc);

if(pDoc->m_Image.IsValidate()) {

if(pPalette!=NULL)

pDC->SelectPalette(pOldPalette, FALSE); CPalette* pOldPalette;

CPalette* pPalette = pDoc->GetDocPalette(); if(pPalette!=NULL) {

pOldPalette = pDC->SelectPalette(pPalette, FALSE); pDC->RealizePalette(); //更新系统调色板

}

pDoc->m_Image.Draw(pDC); //绘制图像

}

EndWaitCursor(); // 恢复正常光标

}

void CDIPDemoView::OnEnhaSmooth() // 图像平滑 {

CDIPDemoDoc* pDoc = GetDocument(); // 获取文档 CImgProcess imgInput = pDoc->m_Image; // 输入对象 if (imgInput.m_pBMIH->biBitCount!=8) {

AfxMessageBox(\不是8-bpp灰度图像,无法处理!\ return;

} // 检查图像是灰度图 CImgProcess imgOutput = imgInput; // 输出的临时对象 int nTempH;

// 模板高度

int nTempW; // 模板宽度 FLOAT fTempC;// 模板系数 int

nTempMX;// 模板中心元素X坐标

4

int

nTempMY;// 模板中心元素Y坐标

FLOAT aValue[25] = {1.0, 1.0, 1.0, 0.0, 0.0,

1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,};

BeginWaitCursor(); // 更改光标形状 nTempH = 3; nTempW = 3; nTempMX = 1; nTempMY = 1;

fTempC = (FLOAT) (1.0 / 9.0); // 初始化对话框变量值

imgInput.Template(&imgOutput, nTempH, nTempW, nTempMY, nTempMX, aValue, fTempC);

void CDIPDemoView::OnEnhaSharp() // 拉普拉斯锐化 {

CDIPDemoDoc* pDoc = GetDocument(); // 获取文档 CImgProcess imgInput = pDoc->m_Image; // 输入对象 if (imgInput.m_pBMIH->biBitCount!=8) {

AfxMessageBox(\不是8-bpp灰度图像,无法处理!\ return;

// 输出的临时对象

// 调用Template()函数实现平滑滤波

pDoc->m_Image = imgOutput; // 将结果返回给文档类 pDoc->SetModifiedFlag(TRUE); // 设置脏标记 pDoc->UpdateAllViews(NULL); // 更新视图 EndWaitCursor(); // 恢复光标

}

} // 检查图像是灰度图 CImgProcess imgOutput = imgInput; int nTempH; // 滤波器的高度 int nTempW; // 滤波器的宽度 int nTempMX; // 中心元素的X坐标

5

int nTempMY; // 中心元素的Y坐标 FLOAT fCoef; // 模板系数 BeginWaitCursor(); nTempW = 3; nTempH = 3; fCoef = 1.0; nTempMX = 1; nTempMY = 1;

// 设置拉普拉斯模板参数

imgInput.Template(&imgOutput, nTempH, nTempW, nTempMY, nTempMX, Template_Laplacian2, fCoef);

// 调用Template()函数用拉普拉斯模板锐化 pDoc->m_Image = imgOutput; // 将结果返回给文档类 pDoc->SetModifiedFlag(TRUE); // 设置脏标记 pDoc->UpdateAllViews(NULL); // 更新视图 EndWaitCursor(); // 恢复光标

} 五、设计结果

设计程序运行结果如下图所示,运行后原始图像如下:

进行图像平滑处理后如下图所示:

6

图像进行拉普拉斯锐化后如下示:

六、收获和体会

在这一个礼拜的图像处理程序设计中,我经过多次的实践和多次的失败,终于在最后成功设计好了程序。同时深刻体会到图像平滑让图像中的细节成分越来越少,而相对的,图像锐化则是凸显图像的细节部分。

图像平滑处理,在很多噪声的情况下,图像平滑能够有效的减弱噪声对图像的影响。无论是高斯噪声、椒盐噪声还是乘性噪声,都能很好的在图像平滑中将

7