【vc++精品源码栏目提醒】:网学会员为需要vc++精品源码的朋友们搜集整理了基于VC++的数字图像处理课程设计 - 大学课件相关资料,希望对各位网友有所帮助!
基于 VC的数字图像处理课程设计一、概述 本次电子课程设计是基于 VC 6.0 MFC 多文档编程编写一个图像处理软件,这个软件能够实现 BMP 格式图像的浏览与编辑,打开和保存。
实现对图像的平滑处理包括邻域平均法和中值滤波法。
还有对图像的锐化处理,包括梯度法和拉普拉斯算子法。
BMP 文件是 Windows 操作系统中的标准图像文件格式可以分成两类:设备相关位图和设备无关位图,使用非常广。
它采用位映射存储格式,除了图像深度可选外,不采用其他任何压缩,因此 BMP 文件所占用的空间很大。
由于 BMP 文件格式是 Windows 环境交换与图有关的数据的一种标准,因此在 Windows 环境中运行的图形图像软件都支持 BMP 图像格式。
图像平滑的目的是为了消除噪声,主要处理的方式有邻域平均法即通过提高信噪比,取得较好的平滑效果;空间域低通滤波采用低通滤波的方法去除噪声;以及频率低通滤波法通过除去其高频分量就能去掉噪声,从而使图像的到平滑。
图像锐化的主要目的是为了增强图像边缘、轮廓和细节,使模糊的图像变得更加清晰,颜色、细节变得鲜明突出,图像的质量有所改善,产生更适合人眼观察和识别的图像。
经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可对其进行逆运算(如微分运算)就可以使图像变得清晰。
从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。
主要功能概述: 1、打开和保存 8 位 bmp 图像 2、图像平滑处理:分为邻域平均法和中值滤波法。
邻域平均法中又有 33 均值滤波器 法、超限邻域平均法、nn 均值滤波器法、有选择的局部平均化。
中值滤波法中有 nn 中值滤波器法、十字形中值滤波法、nn 最大值滤波器法。
3、图像锐化处理:分为梯度法和拉普拉斯算子法。
二、程序流程图 开始 打开图像 平滑处理 锐化处理 邻域平均法 中值滤波法 梯度法 Laplace 算子法 结束三、运行效果 1、软件界面: 2、原图:3、邻域平均法 33 均值滤波器平滑处理后:4、十字形中值滤波平滑处理后:5、梯度法锐化处理后:6、Laplace 算子法锐化处理后:四、程序源代码: void CDynSplitView2::OnFilesave CFileDialog dlgFALSE_TBMP_T.BMPOFN_HIDEREADONLYOFN_OVERWRITEPROM PT_T位图文件.BMP.BMP ifIDOKdlg.DoModal CString filename filename.Format sdlg.GetPathName CDibNew1-SaveFilefilename state21 Invalidate void CDynSplitView2::On33junzhi clearmem CDibNew1-threethree//对图像进行 33 均值滤波 Invalidate void CDynSplitView2::OnChaoxian clearmem THREETHREEJUNZHI dlg ifIDOKdlg.DoModal int tdlg.m_T CDibNew1-Chaoxiant//超限邻域平均法 Invalidate void CDynSplitView2::OnNnjunzhi clearmem NNJUNZHI dlg ifIDOKdlg.DoModal CDibNew1-nndlg.m_n//对图像进行 nn 均值滤波 Invalidate void CDynSplitView2::OnJubupingjun clearmem CDibNew1-jubupingjun//对图像进行有选择局部平均化 Invalidatevoid CDynSplitView2::OnNnzhongzhi clearmem NNJUNZHI dlg ifIDOKdlg.DoModal CDibNew1-nnzhongdlg.m_n//对图像进行 NN 中值滤波 Invalidate void CDynSplitView2::OnShizi clearmem NNJUNZHI dlg ifIDOKdlg.DoModal CDibNew1-shizidlg.m_n//对图像进行十字型中值滤波 Invalidate void CDynSplitView2::OnNnzuida clearmem NNJUNZHI dlg ifIDOKdlg.DoModal CDibNew1-nnzuidadlg.m_n//对图像进行 NN 最大滤波 Invalidate void CDynSplitView2::OnTidu // TODO: Add your command handler code here clearmem CDibNew1-GuDingRuiHua //对图像进行固定阈值锐化 Invalidatevoid CDynSplitView2::OnLaplace // TODO: Add your command handler code here clearmem CDibNew1-Laplacian //调用 Laplacian 算子检测处理函数 Invalidate