DSP原理及图像处理应用第11章 中值滤波

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

^
对处理椒盐噪声(黑白点)非常有效。
11.2 中值滤波的基本原理
11.2.1 背景知识 (2)最大值和最小值滤波器
f ( x, y) max {g (s, t )}
( s ,t )sxy
^
对椒噪声非常有效。
f x, y min {g (s, t )}
( s ,t )sxy
^
//图像四周的像素不进行处理,等于原值 for (i=0; i< cols -1; i++) //处理第一行的像素 *newpp++ = *pp++; //处理最后一行的像素 pp = sourceImg + (rows-1)* cols; //指针指向最后一行 newpp = newImg+ (rows-1)* cols; for (i=0; i< cols -1; i++) *newpp++ = *pp++; //处理最左边一列的像素 newpp = newImg; //指针指向第一行第一个像素 pp = sourceImg; for (i=0; i< rows -1; i++) { *newpp = *pp; newpp+=cols; pp+=cols; //指针偏移到下一行像素的位置 }
void MedianFilter //中值滤波子程序 ( unsigned char *sourceImg, //原始图像 unsigned char *newImg, //输出:中值滤波后图像 int cols, int rows //图像的宽度与高度) { //定义局部变量 int i,j,k,m,r; int pixels; unsigned char *pp=sourceImg, *newpp=newImg; int medianWin[9]={0}; int temp;
2、在第10章,咱们学习了几种图像平滑 算法?分别是什么?
课前提问:
3、简述邻域平均法基本原理?
试说说该方法的优点与缺点。
4、简述加权平均法基本原理?
图像平滑的方法 (二大类)
频域法中,图像平滑的常用方法是低通滤波法。
通过低通滤波的方法使高频分量通过受到抑制和阻止, 而允许低频分量的图像信息顺利通过,从而实现图像的 平滑处理。
//处理最右边一列的像素 newpp = newImg+cols-1; //指针指向第一行最后一个像素 pp = sourceImg+cols-1; for (i=0; i< rows -1; i++) { *newpp = *pp; newpp+=cols; pp+=cols; //指针移到下一行像素的位置 }
在选取加权系数时,通常是根据高斯函数的形状来选择 ,由此相当于构建了高斯平滑滤波器,其对去除服从正态 分布的噪声是很有效果的。
x2 y 2 g x, y exp 2 2
10.2 加权平均法图像平滑
■ 在实际应用中,为保证各模板系数均为整数以减少计算量
对盐噪声非常有效。
11.2 中值滤波的基本原理
11.2.1 背景知识 (3)中点滤波器
1 f ( x, y) [ max g (s, t ) min g (s, t )] ( s ,t )sxy 2 ( s,t )sxy
^
这种滤波器结合了顺序统计和求平均,对于高 斯和均匀随机分布这类噪声有最好的效果。
1、 基本原理
其数学计算式为:
G i, j
K , L
F i, j W i, j, K , L
10.2 加权平均法图像平滑
几点说明:
如果邻域内各加权系数均相等时,即
1 G i, j M
,则加权平均方法变成了邻域平均法,也就是说,邻域平均 法是加权平均法中的一种特例。
11.1 引 言
实际获得的图像在形成、传输、接收和处理的 过程中, 因受到外部干扰和内部干扰,因而 会被噪声影响,导致图像质量的退化。 在图像的后续处理中,要求图像有较高的质量: 例如: 边缘检测,图像分割,特征识别等方面 因此,要研究图像滤波,将图像中的噪声去掉, 以提高图像的质量。 消除图像噪声的工作称之为图像平滑或滤波, 其主要目的有两个:即改善图像质量和突出对象 的特征。
//图像四周的像素不处理 //指针指向第一个像素
//赋值后的中值滤波数组进行冒泡排序 r=8; for(k=0;k<r;k++,r--) for(m=0;m<r;m++) { if ( medianWin[m]>medianWin[m+1] ) { temp=medianWin[m]; medianWin[m]=medianWin[m+1]; medianWin[m+1]=temp; } } //取排序好的数组的中值赋给当前像素 *newpp=medianWin[4]; newpp++; pp++; }
1
1
10.1 邻域平均法图像平滑
几点说明:
值得注意的是,图像邻域平均法的平滑效果与所用的邻 域半径有关。半径愈大,则图像的模糊程度越大。 优点:图像邻域平均法算法简单,计算速度快;
主要缺点:在降低噪声的同时,使图像产生模糊,特别
在边缘和细节处。邻域越大,模糊程度越厉害。
10.2 加权平均法图像平滑
4 试验结果
(1)原始图像
4 试验结果
(2)加椒盐噪声后图像
4 试验结果
(3)中值滤波后的图像
分析与总结
■ 通过实验可以发现中值滤波的优点:对于椒
盐噪Байду номын сангаас的去除效果很好,并且在去除图像噪声的 同时,更好的保护图像的边缘信息,从而获得更 好的图像去噪效果。
■ 因为要对邻域窗口内的像素灰度值进行排序
复习提问:
1、简述中值滤波的基本原理。
2、中值滤波对去除图像中的哪种类型的 噪声非常有效?
3、指出教材本章存在的错误。
本章学习目标
了解图像平滑的概念; 了解图像平滑的意义; 理解中值滤波的基本原理
掌握相应的DSP编程方法与步骤;
知识要点:
中值滤波的原理; 相应的DSP编程方法。
11.2.2 中值滤波的基本原理
■ 中值滤波是由图基(Turky)在1971年提出的;
■ 基本原理:
是把数字图像或数字序列中某点的值用该点的一 个邻域中各个值的中值代替,从而消除孤立的噪 声点; ■ 对于奇数个元素,中值是指按大小排序后中间的 数值; ■ 对于偶数个元素,中值是指排序后中间两个元素 灰度值的平均值。
选择窗口尺寸大小 (2n+1)*(2n+1)
i N 2n
j=1 N i=1 j=j+1
N
j M 2n
对窗口内所有像素灰 度值排序 用排序得到的中值代 替窗口中心像素值
Y 结束
课堂提问:
在中值滤波算法中,有一个关键步骤步是“排序”, 在计算机编程中,常用的排序方法有哪些?
3 C语言代码与分析
用排序所得中值替代窗口中心位置的原始像素灰开始选择窗口尺寸大小2n12n1对窗口内所有像素灰度值排序用排序得到的中值代替窗口中心像素值ii1jj1结束在中值滤波算法中有一个关键步骤步是排序在计算机编程中常用的排序方法有哪些
数字信号处理器原理A
第11章 中值滤波
课前提问: 1、图像去噪的方法可分为几大类?分别 是什么?
pixels=(cols-2)*(rows-2); pp=sourceImg+cols+1; newpp=newImg+cols+1; //中值滤波 for(i=0;i<pixels;i++) { //3*3的中值滤波数组赋值 medianWin[0]=*(pp - cols-1); medianWin[1]=*(pp -cols); medianWin[2]=*(pp - cols+1); medianWin[3]=*(pp-1); medianWin[4]=*pp; medianWin[5]=*(pp+1); medianWin[6]=*(pp + cols-1); medianWin[7]=*(pp + cols); medianWin[8]=*(pp + cols+1);
,常取模板周边最小的系数为1,而取内部的系数成比例增 加,中心系数最大。
■ 一种常用的加权平均方法是根据系数与模板中心的距离成
反比来确定其他内部系数的值;

常用的加权模板有:
目 录 第11章 图像平滑
11.1 引 言
11.2 中值滤波的基本原理
11.3 算法步骤与流程
11.4 C代码与分析 11.5 试验结果 11.6 分析与总结
11.2.2 中值滤波的基本原理
中值的定义:
对序列而言,中值的定义是这样的:

x1 ,..., xn
为一组序列,先把其按大小排列为:
xi1 xi 2 xi 3 xin
则该序列的中值 y 为:
x n 1 i 2 y Med x1 x2 xn 1 x n x n 1 i i 2 2 2 当n为奇数 当n为偶数
11.2 中值滤波的基本原理
11.2 中值滤波的基本原理
11.2.1 背景知识
噪声信号的滤波是图像处理的基本任务之一,主 要有线性滤波和非线性滤波两种方法。 线性滤波方法一般具有低通特性,而图像的边缘 信息对应于高频信号,因此线性滤波方法往往导 致图像边缘模糊,不能取得很好的效果。
中值滤波是一种使边缘模糊较轻的非线性滤波方 法,是由Tukey发明的一种非线性信号处理技术;
和取中值,需要进行大量的数学运算,而且在图 像边缘区域还会保留一定的残留噪声。
1.冒泡排序
Void BubbleSort(Node L[]) { Int i ,j; Bool ischanged;//设计跳出条件 For(j=n;j<0;j--) { ischanged =false; For(i=0;i<j;i++) { If(L[i]>L[i+1])//如果发现较重元素就向后移动 { Int temp=L[i]; L[i]=L[i+1]; L[i+1]=temp; Ischanged =true; } } If(!ischanged)//若没有移动则说明序列已经有序,直接跳出 Break; } }
值代替该像素原来的灰度值。
10.1 邻域平均法图像平滑
例如:对图像采用3×3的邻域平均法,对于像素 (m,n),其邻域像素如下:
(m-1,n1) (m,n-1) (m-1,n) (m-1,n+1) (m,n) (m,n+1)
(m+1,n1)
(m+1,n (m+1,n+1) )
则有:
1 g m, n f m i, n j 9 i 1 j 1
图像模糊
图像平滑的方法 (二大类)
空域方法,图像平滑的常用方法是采用多图像 平均法、邻域平均法和中值滤波等方法。
①多图像平均法:多图像平均法使是对同一景物的多幅 图像取平均来消除噪声的方法。
②邻域平均法:基本思想是用图像上点(x,y)及其邻域 像素的灰度平均值来代替点(x,y)的灰度值。
③中值滤波法:基本思想是:用像素邻域内的中间灰度
一维中值滤波举例
例1:1*5的一维序列,噪声点为m,灰度值为2,先进行数值排 序,找到中值并用中值取代原噪声点,形成新的1*5一维数据。
二维中滤滤波的邻域窗口
二维中值滤波的窗口通常选为3*3,5*5区域,可 以取方形,也可以取近似圆形或十字形。
以5*5窗口为例,常见的图形如图11-2-1(a)方形 (b) 菱形 (c)十字形 所示:
早期用于一维信号处理,后来很快被用到二维数 字图像平滑中。
11.2 中值滤波的基本原理
11.2.1 背景知识 常见的非线性滤波器包括中值滤波器、最大最小 值滤波器以及中点滤波器. 下面分别列出基本公式和主要用途。
(1)中值滤波器
f ( x, y) median g (s, t )
( s ,t )sxy
11.3 算法步骤与流程图
■ 中值滤波算法的具体实现过程如下:
①选择一个(2n+1)×(2n+1)的窗口(通常为3×3或 5×5),并用该窗口沿图像数据进行行或列方向的 移位滑动; ②每次移动后,对窗内的诸像素灰度值进行排序; ③用排序所得中值替代窗口中心位置的原始像素灰 度值。
算法流程图
开始 i=i+1
(a)方形
(b)菱形
(c)十字形
二维中值滤波举例:
例2:3*3的邻域,对9个数排序,取第5个数替代原来的像素 值。以某一个像素点为中心,选取一个3*3的窗口为模版,如 图11-2-3:模版中的灰度值依次为{2,1,4,2,2,3,7,6,8},排 序后新的灰度值为{1,2,2,2,3,4,6,7,8},第五个数3为排序后 的中值,用3取代原来的中心值2,完成中值滤波过程。
相关文档
最新文档