matlab《数字图像处理》第7章 空间域滤波
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若滤波器关于其中心对称,则两个选项将产生同 样的结果
17
在使用预先旋转的滤波器或对称的滤波器时, 希望执行相关,就有两种方法:
第一: g=imfilter(f, w, ‘conv’, ‘replicate’) 第二:使用函数rot90(w,2), 将图像旋转 180°,然后使用g=imfilter(f, w, ‘replicate’)
他们都是非线性滤波器,其响应基于对图象邻域中 所包含的像素进行排序,然后使用排序结果确定的 值来替代领域中的中心像素的值。
50
2 统计排序滤波器
是一种非线性滤波器 基于滤波器所在图象区域中像素的排序,由排
序结果决定的值代替中心像素的值
分类:
最大值滤波器:用像素邻域内的最大值代替该像素 中值滤波器: 用像素邻域内的中间值代替该像素 最小值滤波器:用像素邻域内的最小值代替该像素
3 图像处理工具箱的标准线性空间滤波器
工具箱支持一些预定义的二维线性空间滤波器,可由 函数fspecial来实现。 用来生成滤波掩模w的函数fspecial的语法为: w=fspecial (‘type’, parameters) ‘type’ 表示滤波器类型 ‘parameters’ 进一步定义了指定的滤波器
38
5 拉普拉斯算子
39
5 拉普拉斯算子
(2)
40
41
锐化(拉普拉斯)滤波器 例3 f=imread('moon.tif'); imshow(f) w4=fspecial('laplacian',0); w8=[1,1,1;1,-8,1;1,1,1]; f=im2double(f); g4=f-imfilter(f,w4,'replicate'); g8=f-imfilter(f,w8,'replicate'); imshow(f) figure,imshow(g4) figure,imshow(g8)
58
6 ordfilt2——实现非线性空间滤波
函数的语法
g=ordfilt2(f, order, domain )
f是输入图像 使用邻域的一组排列元素中的第order个元素来替 代f中的每个元素,而该邻域则由domain中的非零 元素指定。
59
1)实现大小为m*n的最小滤波器
g=ordfilt2(f, 1, ones(m, n)) 1表示mn个样本中的第一个样本, ones(m, n)创 建了一个元素值为1,大小为m*n的矩阵,表明 邻域内的所有样本都将用于计算。 在统计学术语中,最小滤波器(一组排序元素 中的第一个样本值)称为第0个百分位。同样, 第100个百分位指的就是一组排序元素中的最后 一个样本值,即第mn个样本。
19
例子:使用函数imfilter
f是一副double类型图像,大小为512*512像素
20
f=zeros(512); f(1:256,256:512)=1; f(256:512,1:256)=1; imshow(f)
用一个大小为31*31的简单滤波器 W =ones(31); 该滤波器近似为一个平均滤波器
27
3 均值滤波器
28
3 均值滤波器
左图是标准的像素平均值 右图是像素的加权平均,表明一些像素更为重要
29
3 均值滤波器
30
以模块运算系数表示即:
31
常用的模板:
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
25
函数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],则表示方形滤波器
二阶导数对细微结构有较强的响应,如细线和
孤立点。
• •
二阶导数在灰度级阶跃变化时产生双响应。
二阶导数对线的响应比对阶跃的响应强,对点
的响应比对线强。
49
7.3 非线性空间滤波
1 ordfilt2——实现非线性空间滤波
ordfilt2函数可以生成统计排序(order- statistic)滤 波器(也称为排序滤波器,rank filter).
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
32
均值滤波器 例1
33
均值滤波器 例2
34
4 锐化滤波器
微分滤波器的原理
35
微分滤波器的原理
36
37
5 拉普拉斯算子
61
3)实现中值滤波器
基于实际应用中的重要性,工具箱提供一个二维 中值滤波器函数: g=medfilt2(f, [m n], padopt)
数组[m n]定义了一个大小为m*n的邻域,中值就在该邻 域上计算; Padopt指定了三个可能的边界填充选项之一:
‘zeros’:默认值 ‘symmetric’ :f按照镜像反射方式对称地沿其
18
滤波后的图像的每个元素使用双精度浮 点算术进行计算。然而,imfilter会将输 出图像转换为与输入图像相同的类型。
若f是一个整数数组,则输出中超过整型 范围的元素将被截断,且小数部分会四 舍五入。
若结果要求更高的精度,则f需要在使用 函数imfilter之前利用im2double或double 转换为double类型。
42
原 图 像
43
使用中心为-4 的拉普拉斯滤 波器增强后的 图像
44
使用中心为-8 的拉普拉斯滤 波器增强后的 图像
45
6 梯度算子(非线性锐化滤波器)
46
6 梯度算子
47
例: 梯度用于边缘增强
48
导数的性质
•
在图像的一阶导数运算中,一阶导数通常产生 较厚的边缘。
•
•
一阶导数对灰度阶跃有较强的响应。
若函数对称移动,则卷积和相关操作会产生相同的结 果
12
13
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’
60
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的中值。
5
2
6
2
7
3 平滑和锐化滤波器
平滑空间滤波器的作用:
模糊处理:去除图像中一些不重要的细节 减少噪声
8
3 平滑和锐化滤波器
平滑空间滤波器的分类:
线性滤波器:均值滤波器
非线性滤波器
最大值滤波器 中值滤波器 最小值滤波器
9
锐化空间滤波器的作用:
突出图像中的细节,增强了被模糊的细节;
51
2 统计排序滤波器
52
2 统计排序滤波器
53
3 中值滤波的原理
54
55
4 中值滤波的实现
将模板区域内的像素排序,求出中间值
56
4 中值滤波的实现
57
5 中值滤波的特点
在去除噪声的同时,可以比较好地保留边的锐 度和图像的细节(优于均值滤波器)
能够有效去除脉冲噪声:以黑白点叠加在图像 上
26
函数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’获得
边界扩展 ‘indexed’:若f是double类图像,用1来填充图像, 否则以0来填充图像。
62
3)实现中值滤波器
g=medfilt2(f) 使用一个大小为3*3的邻域来计算中值, 并用0来填充输入图像的边界
63
例:使用函数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);
P的默认值是0
函数的一个周期来扩展
15
size_options : ‘full’ 输出图像的大小与被扩展图像的大小相同 ‘same’ 输出图像的大小与输入图像的大小相同。该 值为默认值
16
2 imfilter通用语法
g=imfilter (f, w, ‘replicate’ )
对旋转过的滤波器执行相关操作与对原始滤波器 进行卷积操作是相同的;
gs=imfilter(f,w,'symmetric'); figure() imshow(gs,[])
23
Байду номын сангаас
f8=im2uint8(f); g8r=imfilter(f8, w,'replicate'); figure,imshow(g8r,[])
24
解决方法归一化系数,w0= 1/(31.^2)*w 或是以im2double格式输入数据
14
filtering_mode:相关(corr),该值是默认值,卷积 (conv) boundary_option:
P 输入图像的边界通过用值p(无引号)来填充来扩展。
‘replicate’ 图像大小通过复制外边界的值来扩展 ‘symmetric’图像大小通过镜像反射其边界来扩展 ‘circular’图像大小通过将图像看成是一个二维 周期
21
w=ones(31); gd=imfilter(f,w); figure() imshow(gd,[])
gc=imfilter(f,w,'circular'); figure() imshow(gc,[])
22
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(窗)
印刷中的细微层次强调。弥补扫描对图像的钝化;
超声探测成像,分辨率低,边缘模糊,通过锐化来改
善
图像识别中,分割前的边缘提取 锐化处理过度处理的钝化,曝光不足的图像 尖端武器的目标识别、定位
10
4 相关和卷积
11
4 相关和卷积
相关是指掩模w按下页图所示的方式在图像f中移动的 过程
卷积是相同的过程,只是在图像中移动w前,要将w旋 转180度。