《对图像进行均值滤波课程设计》由会员分享,可在线阅读,更多相关《对图像进行均值滤波课程设计(10页珍藏版)》请在毕设资料网上搜索。
1、 图形图像处理与应用 题 目 对图像进行均值滤波 院(系)专业级班 学 号 姓 名 指导教师 成 绩 完成时间 2012 年 06 月 均均 值值 滤滤 波波 均值滤波的原理均值滤波的原理 均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模 板,该模板包括了其周围的临近像素(以目标象素为中心的周围 8 个象素,构成 一个滤波模板,即去掉目标象素本身) 。再用模板中的全体像素的平均值来代替 原来像素值。 均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的 基本原理是用均值代替原图像中的各个像素值, 即对待处理的当前像素点 (x, y) , 选择一个模板,该模板由其近邻的
2、若干像素组成,求模板中所有像素的均值,再 把该均值赋予当前像素点(x,y) ,作为处理后图像在该点上的灰度个 g(x,y) , 即个 g(x,y)=1/m f(x,y) m 为该模板中包含当前像素在内的像素总个数。 均值滤波的实现算法均值滤波的实现算法 均值滤波将每个像素点的灰度值设置为以该点为中心的邻域窗口内的所 有像素灰度值的平均值,以实现像素的平滑,达到图像去噪的目的。设输入图像 信号为 f(x,y),去噪处理后的输出图像为 g(x,y),则有 g(x,y)= | f(x,y)- u (x,y)| 。 通过上式可以达到消除信号噪声的目的,但对于其中的每一个灰度值来 说,都需要按照式求取以
3、该点中心的邻域窗口内所有像素的平均值,对长度为 (2n+1)的信号来说,需要进行(2n+1)次加法、一次乘法、一次除法。所以说,均 值计算占用了均值滤波处理的大量时间费用。 均值滤波应用均值滤波应用 均值滤波就是在一定的时间内对输入信号进行连续的采样然后求出几次采样值的 平均值。设 x0 xi 是采样值,yk 是对采样进行平均值滤波的输出值,其关系如下: 在工程应用中,均值滤波对于周期性的干扰有很好的抑制作用,另外,均值滤波对于 热噪声产生的干扰也有很好的抑制作用。 n 的取值取决 n 系统的参数,如果系统对输入的灵敏度要求很高,则 n 的 取值应比较小,如果系统的输入变化速度不快,系统对输入
4、的灵敏性要求也不是 很高,为了抑制干扰,提高输入的精度,可以将 n 取得比较大。 均值滤波器均值滤波器 均值滤波器也是平滑线性滤波器,常用于模糊处理和减小噪声,模糊处理 经常用于预处理。 例如, 在提取大的目标之前除去信号中的一些琐碎细节、 桥接直线或曲线的缝隙。通过线性滤波器和非线性滤波器可以减小噪声。 程序设计程序设计: 具体代码如下: / MyDIPView.cpp : implementation of the CMyDIPView class / #include “stdafx.h“ #include “MyDIP.h“ #include “MyDIPDoc.h“ #include
5、 “MyDIPView.h“ #include “math.h“ #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_; #endif /* * * 函数名称: * Template: * * 参数: * HDIB hDIB 图像的句柄 * double *tem 指向模板的指针 * int tem_w 模板的宽度 * int tem_h 模板的高度 * double xishu 模板的系数 * * 功能: * 对图像进行模板操作 * * 说明: * 为处理方便起见,模板的宽度和高度都应为奇数 */ HDIB Template(HDIB hDIB,double * tem ,int tem_w,int tem_h,double xishu) /统计中间值 double sum; /指向图像起始位置的指针 BYTE *lpDIB=(BYTE*):GlobalLock(HGLOBAL) hDIB); /指向象素起始位置的指针 BYTE *pScrBuff =(BYTE*):FindDIBBits(char*)lpDIB); /获取图像的颜色信息 int numColors=(int) :DIBNumC