第7章 空间域滤波
若滤波器关于其中心对称,则两个选项将产生同 样的结果
16
在使用预先旋转的滤波器或对称的滤波器时, 希望执行相关,就有两种方法:
第一: g=imfilter(f, w, ‘conv’, ‘replicate’) 第二:使用函数rot90(w,2), 将图像旋转 180°,然后使用g=imfilter(f, w, ‘replicate’)
18
例子:使用函数imfilter
f是一副double类型图像,大小为512*512像素
19
f=zeros(512); f(1:256,256:512)=1; f(256:512,1:256)=1; imshow(f)
用一个大小为31*31的简单滤波器 W =ones(31); 该滤波器近似为一个平均滤波器
P的默认值是0
函数的一个周期来扩展
14
size_options : ‘full’ 输出图像的大小与被扩展图像的大小相同 ‘same’ 输出图像的大小与输入图像的大小相同。该 值为默认值
15
2 imfilter通用语法
g=imfilter (f, w, ‘replicate’ )
对旋转过的滤波器执行相关操作与对原始滤波器 进行卷积操作是相同的;
63
(a)原图像
(b)添加椒盐噪的图像
1 1 1 1 0 1 H3 1 8 1 1 1
0 0 1 4 1 1 1 H4 1 2 4 4 1 0 4 0
31
均值滤波器 例1
32
均值滤波器 例2
33
4 锐化滤波器
微分滤波器的原理
34
微分滤波器的原理
35
36
5 拉普拉斯算子
二阶导数对细微结构有较强的响应,如细线和
孤立点。
• •
二阶导数在灰度级阶跃变化时产生双响应。
二阶导数对线的响应比对阶跃的响应强,对点
的响应比对线强。
48
7.3 非线性空间滤波
1 ordfilt2——实现非线性空间滤波
ordfilt2函数可以生成统计排序(order- statistic)滤 波器(也称为排序滤波器,rank filter).
25
函数fspecial支持的空间滤波器
4) fspecial (‘log’, [r c], sig).一个大小为r*c的高斯-拉普拉 斯(loG)滤波器,标准偏差为sig(正)。默认值为5*5 和0.5..若由一个数来代替[r c],则表示方形滤波器 5) fspecial (‘prewitt’). 输出一个大小为3*3的prewitt掩模 wv,它近似于垂直梯度。水平梯度掩模可以通过置换结 果wh=wv’获得 6) fspecial (‘sobel’).输出一个大小为3*3的sobel掩模sv, 它近似于垂直梯度。水平梯度掩模可以通过置换结果 sh=sv’获得
26
3 均值滤波器
27
3 均值滤波器
左图是标准的像素平均值 右图是像素的加权平均,表明一些像素更为重要
28
3 均值滤波器
29
以模块运算系数表示即:
30
常用的模板:
1 1 1 1 H 1 10 1 2 1 1 1 1 1 2 1 1 H 2 16 2 4 2 1 2 1
59
2)实现大小为m*n的最大滤波器
g=ordfilt2(f, m*n, ones(m, n))
3)实现中值滤波器
数字图像处理中最著名的统计排序滤波器是中值 滤波器,它对应的是第50个百分位。 g=ordfilt2(f, median(1:m*n), ones(m, n)) median(1:m*n)简单地计算序列1,2,…,m*n的中值。
3 图像处理工具箱的标准线性空间滤波器
工具箱支持一些预定义的二维线性空间滤波器,可由 函数fspecial来实现。 用来生成滤波掩模w的函数fspecial的语法为: w=fspecial (‘type’, parameters) ‘type’ 表示滤波器类型 ‘parameters’ 进一步定义了指定的滤波器
他们都是非线性滤波器,其响应基于对图象邻域中 所包含的像素进行排序,然后使用排序结果确定的 值来替代领域中的中心像素的值。
49
2 统计排序滤波器
是一种非线性滤波器 基于滤波器所在图象区域中像素的排序,由排
序结果决定的值代替中心像素的值
分类:
最大值滤波器:用像素邻域内的最大值代替该像素 中值滤波器: 用像素邻域内的中间值代替该像素 最小值滤波器:用像素邻域内的最小值代替该像素
17
滤波后的图像的每个元素使用双精度浮 点算术进行计算。然而,imfilter会将输 出图像转换为与输入图像相同的类型。
若f是一个整数数组,则输出中超过整型 范围的元素将被截断,且小数部分会四 舍五入。
若结果要求更高的精度,则f需要在使用 函数imfilter之前利用im2double或double 转换为double类型。
20
w=ones(31); gd=imfilter(f,w); figure() imshow(gd,[])
gc=imfilter(f,w,'circular'); figure() imshow(gc,[])
21
gr=imfilter(f,w,'replicate'); figure() imshow(gr,[])
第7章 空间域滤波
学习重点
图像平滑 图像锐化
中值滤波
2
学习内容
7.1 引言
7.2
线性空间滤波
7.3 非线性空间滤波
3
7.1 引言
1 空间域滤波增强定义:
空间域滤波增强采用模板处理方法对图像进
行滤波,去除图像噪声或增强图像的细节。
模板本身被称为空间滤波器
4
空域滤波是将邻域内的图像像素值 同对应的与邻域有相同维数的子图 像值相作用 子图像亦称作:filter(滤波器)、 mask(掩模)、 kernel(核)、 template(模板)、 window(窗)
60
3)实现中值滤波器
基于实际应用中的重要性,工具箱提供一个二维 中值滤波器函数: g=medfilt2(f, [m n], padopt)
数组[m n]定义了一个大小为m*n的邻域,中值就在该邻 域上计算; Padopt指定了三个可能的边界填充选项之一:
‘zeros’:默认值 ‘symmetric’ :f按照镜像反射方式对称地沿其
若函数对称移动,则卷积和相关操作会产生相同的结 果
11
12
7.2线性空间滤波
1 imfilter——实现线性空间滤波
函数的语法
g=imfilter (f, w, filtering_mode, boundary_option , size_options )
f是输入图像,w是滤波掩模,g为滤波结果 filtering_mode制定滤波过程中是使用相关( corr) 还是卷积(conv) boundary_option用于处理边界填充零问题,边界 的大小由滤波器的大小确定。 size_options 可以是’same’或’full’
24
函数fspecial支持的空间滤波器
1) fspecial (‘average’, [r c]). 大小为r*c的一个矩形平均滤 波器。默认值为3*3.若由一个数来代替[r c],则表示方形 滤波器 2) fspecial (‘disk’, r). 一个圆形平均滤波器(包含在2r+1 大小的正方形内),半径为r。默认半径为5 3) fspecial (‘gaussian’, [r c], sig). 一个大小为 r*c的高斯低 通滤波器,标准偏差为sig(正)。默认值为3*3和0.5.若由 一个数来代替[r c],则表示方形滤波器
边界扩展 ‘indexed’:若f是double类图像,用1来填充图像, 否则以0来填充图像。
61
3)实现中值滤波器
g=medfilt2(f) 使用一个大小为3*3的邻域来计算中值, 并用0来填充输入图像的边界
62
例:使用函数medfilt2进行中值滤波 中值滤波是降低图像椒盐噪声的有效工具
f=imread('rice.png'); figure,imshow(f); fn=imnoise(f,'salt & pepper',0.2); figure,imshow(fn); gm=medfilt2(fn); figure,imshow(gm); gms=medfilt2(fn,'symmetric'); figure,imshow(gms);
50
2 统计排序滤波器
51
2 统计排序滤波器
52
3 中值滤波的原理
53
54
4 中值滤波的实现
将模板区域内的像素排序,求出中间值
55
4 中值滤波的实现
56
5 中值滤波的特点
在去除噪声的同时,可以比较好地保留边的锐 度和图像的细节(优于均值滤波器)
能够有效去除脉冲噪声:以黑白点叠加在图像 上
13
filtering_mode:相关(corr),该值是默认值,卷积 (conv) boundary_option:
P 输入图像的边界通过用值p(无引号)来填充来扩展。
‘replicate’ 图像大小通过复制外边界的值来扩展 ‘symmetric’图像大小通过镜像反射其边界来扩展 ‘circular’图像大小通过将图像看成是一个二维 周期
印刷中的细微层次强调。弥补扫描对图像的钝化;
超声探测成像,分辨率低,边缘模糊,通过锐化来改