adalm2000引脚用法

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

第五章数字图像的预处理技术
5.1图像退化模型与噪声分类 5.2图像噪声的空间域滤波方法
5.2.1针对加性噪声的空间域滤波方法 (1)自适应均值滤波器
2.自适应中值滤波器
3.自适应梯度倒数加权滤波器 5.2.2空间域滤波方法的MA TLAB 实现 5.3图像空间域滤波新方法探索
5.3.1中值滤波算法的研究 1 噪声检测
2基于1 数据逼近和细节保护规则函数的凸面代价函数与噪声恢复 3方法性能的仿真实验评价
5.3.2均值滤波算法的研究
1基于RADON 变换的图像主纹理方向分析 2概率统计模型
3方法性能的仿真实验评价 5.4周期噪声与频域滤波 5.5小波滤波
5.5.1 小波域去噪模型
5.5.2阈值的估计 5.5.3小波滤噪的MA TLAB 实现 5.6偏微分方程图像去噪 5.7边缘检测
5.7.1边缘检测的梯度算子 1Roberts 算子
1
(,)(,)0
(,)g x y T d x y g x y T
≥⎧⎪=⎨
<⎪⎩ (5-116)
2 Prewitt 算子
3 Sobel 算子
4 LOG 算子
5 Canny 算子
5.7.2基于梯度算子的边缘检测MA TLAB 编程 5.7.3Hough 变换与线检测
第五章数字图像的预处理技术
数字图像的预处理技术是图像处理与分析的基础,其处理结果对后序图像的处理与分析结果有非常大的影响。

图像的预处理技术主要包括图像复原、图像增强两种操作,图像复原是通过使用退化现象的先验知识试图重建或恢复一幅退化图像,主要包括几何畸变的修正、图像滤噪等,本书在第三章介绍了几何畸变的修正的基本内容。

本章主要介绍图像滤噪的相
关内容。

图像增强是根据图像处理或分析的主要目标,以增强图像中相关的部分信息为主要目标的操作,主要包括图像锐化、边缘检测及基于图像直方图的图像增强等。

在第三章介绍了基于图像直方图的图像增强技术。

本章主要介绍图像图像锐化、边缘检测的相关内容。

5.1图像退化模型与噪声分类
在图像生成与传输过程中,由于成像系统与通讯信道各种因素的影响,可能使图像质量降低。

这种图像质量的降低,被称之为“退化”。

图像模糊、失真、附加噪声等都是图像退化的典型表现。

图像复原是利用退化过程的先验知识使已被退化的图像恢复本来的面目,从而改善图像的质量。

图像复原可以看成是退化的逆过程,因此了解图像的退化是进行图像复原的基础。

一般来说,图像的退化过程可以描述为如下的数学表达式:
()(),,g x y Hf x y = (5-1)
式中,(),f x y 是原图像,H 是综合退化因子,(),g x y 是退化后的图像。

通常,图像()
,f x y 可以表示成:
()()(
),,,
f x y f x y d d
αβδαβ
αβ+∞+∞-∞
-∞
=
--⎰⎰
(5-2) 式中,(),f αβ是像素点的特征函数,(),x y δαβ--为冲击响应。

为了简化问题,假定成像系统是线性的。

实际上,一般情况下,退化因子对图像的各个像素点所产生的影响是相同的,呈现出线性的规律。

这样,式(5-2)可以表示为:
()()(
),,,
g x y H f x y d d αβδαβ
αβ
+∞
+∞-∞
-∞
=--⎰

()(),,f H x y d d αβδαβαβ+∞+∞-∞
-ℵ
=
--⎰⎰
(5-3)
令()(),,,,h x y H x y αβδαβ=--,称为成像系统的冲击相应,也叫做点扩散函数(PSF)。

若成像系统是线性移不变系统,则退化图像可以用f 和h 的卷积表示如下:
()()()()(),,,
,,g x y f h
x y d d f x y h
x y αβαβ
αβ+∞+∞-∞
-∞
=
--=
*⎰⎰
(5-4) 此外,如果受到加性噪声(),n x y 的干扰,则图像的退化模型可表示为[见图5.1]:
()()()(),,,,g x y f x y h x y n x y =*+ (5-5)
如果噪声类型为乘性噪声,则图像的退化模型可表示为:
()()()(),,,[1,]g x y f x y h x y n x y =*+ (5-6)
从数学上来说,图像退化是卷积运算和加噪运算的组合,如果可以施行去卷积和去噪声的操作,退化的图像就可以复原[见图2.1]。

由此图像滤噪是图像复原的重要手段。

(,)f x y
(,)g x y
图5.1 图像退化模型
噪声可以理解为不可预测,只能用概率统计方法来认识的随机误差,因此将图像噪声看成是多维随机过程是合适的,描述噪声完全可以借用随机过程及其概论分布函数。

图像噪声按其产生的原因可分为内部噪声与外部噪声;从统计特性可分为平稳噪声与非平稳噪声,平稳噪声统计特性不随时间变化,而非平稳噪声统计特性是时间的函数;按噪声与信号的关系可分为加性噪声与乘性噪声。

基于前面的假设,所关心的空间噪声描述符是上面所提及模型的噪声分量灰度值的统计特性。

它们可以被认为是由概率密度函数(PDF )表示的随机变量,下面是图像处理常见的噪声分布类型。

5.1.1数字图像常见的噪声
数字图像常见的噪声分布类型有Gaussian 噪声分布、瑞利噪声分布、伽马(厄兰)噪声、指数分布噪声、对数正态分布噪声、脉冲噪声分布等。

一般来说,高斯噪声可以近似描述在低照明水平图像传感器成像产生的噪声,椒盐噪声可以模拟不完备的开关设备产生的噪声,瑞利噪声产生于波段成像,而指数与伽马(厄兰)噪声可以描述激光成像产生的噪声。

照像乳胶中的银粒大小产生的噪声可以用对数正态分布噪声描述。

图5.2给出了Lena 图片感染各种噪声的结果。

1.Gaussian 噪声分布
这是一种常见的噪声模型,大多数噪声可近似认为满足高斯分布,而且高斯分布比较容易进行数学分析。

设随机变量z 满足高斯分布,则其概率密度函数为:
(
)()21
x p
22z p z μσ⎡⎤
--⎢⎥=
⎢⎥⎣⎦ (5-7) 其中,z 表示图像的灰度值,μ表示期望值,σ表示z 的均方差。

如果z 服从式(2-7)分布时,其值有70%落在()(),μσμσ-+⎡⎤⎣⎦范围内,且有90%落在()()2,2μσμσ-+⎡⎤⎣⎦范围内。

2.瑞利噪声分布
若随机变量z 满足瑞利分布,则其概率密度函数为:
()()()⎪⎪⎩⎪⎪⎨⎧<≥⎥⎦⎤
⎢⎣⎡---=a
z a z b a z a z b z p 0e x p 22 (5-8)
z 的均值和方差为:
()⎪⎩⎪⎨⎧-=+=4
44
2
πσπμb b a
3.伽马(厄兰)噪声 伽马噪声的PDF 由下式给出:
()()⎪⎪⎩⎪⎪⎨
⎧<≥-=--0
00!
11z z e b z a z p az
b b (5-9)
其中0a >,b 为正整数。

密度的均值和方差为:
⎪⎪⎩
⎪⎪⎨

==22a b
a b σμ 尽管式(2-9)经常被用来表示伽马密度,严格地说,只有分母为()b Γ时伽马函数才是正确的。

当分母如上式所示时,该密度近似为厄兰密度。

4.指数分布噪声
指数噪声的PDF 可由下式给出:
()⎪⎩⎪

⎧<≥=-0
00z z az
z p az
(5-10)
其中0a >。

概率密度函数的期望值和方差为:
⎪⎪⎩⎪⎪⎨

==221
1a a σμ
指数分布的概率密度函数是当1b =时爱尔兰概率分布的特殊情况。

5.均匀分布噪声
均匀分布噪声的概率密度可由下式给出:
()⎪⎩

⎨⎧≤≤-=其他
01
b z a a
b z p (5-11)
概率密度函数的均值和方差可由下式给出:
()⎪⎪⎩⎪⎪⎨⎧-=
+=1222
2a b b a σμ
6.脉冲噪声分布
脉冲噪声的概率密度函数如下:
(
)0a b
p z a p z p z b ⎧=⎪⎪==⎨⎪⎪⎩
其他
(5-12)
如果b a >,灰度值b 在图像中将显示为一个亮点,相反,a 将显示为一个暗点。

若a p 或b p 为零,则脉冲噪声称为单极脉冲。

如果a p 和b p 均不可能为零,尤其是它们近似相等时,脉冲噪声值类似于随机分布在图像上的胡椒和盐粉微粒。

由于这个原因,双极脉冲噪声也称为椒盐噪声。

有时也称为散粒和尖峰脉冲。

脉冲噪声可以是正,也可以是负。

因为脉冲干扰通常与图像信号的强度相比较大,因此,在一幅图像中,脉冲噪声总是数字化为最大值(纯白或纯黑)。

这样,通常假设a 和b 是饱和值,从某种意义上看,在数字化图像中,它们等于所允许的最大值和最小值。

由于这一结果,负脉冲以一个黑点(胡椒点)出现在图像中,正脉冲以一个白点(盐点)出现在图像中。

对于一个8位图像,这意味着0a =,255b =。

7.对数正态分布噪声
对数正态分布噪声概率密度函数如下:
2
2
[ln()]/(2)
()z a b p z --=
0z > (5-13)
5.1.2用MA TLAB 模拟各类噪声
MA TLAB 工具中提供了imnoise()对图像添加噪声,其调用格式为: >>g=imnoise(f,type,parameters);
其中f 为待感染的图像,g 为感染后的图像,参数type 指定感染噪声类型,取值为’gaussian ’感染的是高斯噪声,取值为’salt & pepper ’,感染的是椒盐噪声,如果取值为’localvar ’,则感染的是均值为零的高斯噪声,取值为’speckle ’,感染的为乘性噪声,取值为’posson ’,则感染的是泊松噪声。

参数parameters 随type 参数取值不同而不同,如果是高斯噪声,参数parameters 指定
其均值与方差,具体格式为:
>>g=imnoise(f, ’gaussian ’,m,var);
其中,m 为高斯噪声的均值,var 为方差。

由于imnoise()函数要求被感染图像必须是取值
为[0,1]之间的double 类型,所以对应参数应考虑这一点,例如,对于256灰度图像,如果感染均值为64、方差为100的高斯噪声,参数2
64/256,var 100/256m ==。

如果类型为椒盐噪声,则需指定噪声感染的概率密度,调用格式为:
>>g=imnoise(f, ’ salt & pepper ’,d);
其中,d 为感染率,如果省略d ,则默认值为0.05。

type 取值为’localvar ’,则感染的是均值为零的高斯噪声,调用有如下两种方式:
>>g=imnoise(f, ’ localvar ’,v);
或者为:
>>g=imnoise(f, ’ localvar’,image_intensity,v);
第一种方式v为与图像f大小相同的数组,可以对每个像素规定其方差值。

第二种方式v为与图像f的灰度值取值范围大小相同的数组,intensity为对应灰度值,可以对图像的每个灰度值规定其方差值。

type取值为’speckle ’,则用方程g f n f
=+⨯将均值为0,给定方差的均匀分布的乘性噪声感染到图像f中,调用格式为:
>>g=imnoise(f, ’ speckle’,var);
其中,参量var指定均匀分布噪声的方差,缺省值为0.04。

图5.2 Lena图片感染各种噪声的结果
例5.1 对Lena利用MA TLAB编程实现感染均值0,方差0.01高斯噪声。

程序如下:
f=imread('E:\matlab7\lena.bmp');
g=rgb2gray(f);
(a) Lena原图像
(b)感染均值0,方差
0.01高斯噪声
(c)感染概率为0.05
的椒盐噪声
(d)感染a=0,b=0.01
的瑞利噪声
(e)感染a=1,b=0.5的
对数正态分布噪声
(f)感染a=10的指数
噪声
(h)感染a=20,b=5的
厄兰噪声
(i)感染均匀分布噪

(j)感染均匀分布,方
差为0.04的乘性噪

g1=im2double(g);
g1=imnoise(g1,'gaussian',0,0.01); imshow(g1,[]);
执行结果见图5.2(b) 例5.2 对Lena 利用MA TLAB 编程实现感染噪声密度为0.05的椒盐噪声。

程序如下:
f=imread('E:\matlab7\lena.bmp'); g=rgb2gray(f);
g1=im2double(g);
g1=imnoise(g1,' salt & pepper ',0.05); imshow(g1);
执行结果见图5.2(c)
虽然利用MA TLAB 提供的imnoise()可以方便的模拟一些图像噪声,但不能模拟所有图像噪声类型。

哪么如何利用MA TLAB 模拟已知概率密度函数的所有图像噪声类型,根据概率论的一个著名结论:即若w 是一个在区间(0,1)内均均分布的随机变量,则可以通过下式获得具有指定概率累积分布函数(CDF )的随机变量z :
1
()z z F w -= (5-14)
其中()z F w 为随机变量z 的累积分布函数CDF 。

哪么如何产生一个在区间(0,1)内均均分布的随机变量,MA TLAB 提供的随机函数可以产生一个在区间(0,1)内近似均均分布的随机变量,其调用格式为:
>>w=rand(n,m);
其中,参量,n m 为产生的随机变量组成的矩阵的大小,另外一个生成随机变量的函数为randn(),其生成取值为(0,1)均值为0、单位方差的正态分布随机变量,其调用格式为: >>w=randn(n,m);
参量,n m 与rand()函数相同。

由此,只有已知噪声模型的概率分布函数,就可以计算出其累积分布函数,然后利用式(5-14)可以产生符合概率分布函数随机噪声,如果是加性噪声,即可以利用下式完成对图像x 的感染:
x x r =+ (5-15)
其中,r 为产生的与图像x 尺度相同的随机噪声。

如对于瑞利噪声,根据式(5-8)可以求得其累积分布函数为:
2
()
/1e
,()0,
z a b
z z a F z z a
--⎧-≥⎪=⎨
<⎪⎩ (5-16)
根据式(5-14),得方程为:
2
()/1e
z a b
w ---= (5-17)
解方程得:
z a =+
(5-18)
则生成瑞利噪声的MA TLAB m 函数如下:
Function r=rayleigh(m,n,a,b)
% rayleigh generates an array of random numbers with rayleigh PDF
% with m-by-n, whos elements are random numbers between 0,1 with % parameters a and b. If m=n=1, it generates a single random number. r=a+(-b*log(1-rand(m,n))).^0.5 end
5.2图像噪声的空间域滤波方法
图像退化是卷积运算和加噪运算的组合,如果可以施行去卷积和去噪声的操作,退化的图像就可以复原。

当图像退化原因仅仅是感染噪声时,式(5.2)变为:
()()()
,,,g x y f x y n x y =+ (5-19)
由于噪声项(),n x y 是未知的,从(),g x y 减去它们不是一个现实的选择。

不同的噪声处理方法也不同,存在加性噪声时,可以选择空间域滤波方法。

如果是周期性噪声,频域处理方法较为适合。

5.2.1针对加性噪声的空间域滤波方法
对于感染加性噪声的图像,常用的空间域滤波方法有均值滤波器与顺序统计滤波器,均值滤波器是一种线性滤波器,而顺序统计滤波器是一种非线性滤波器。

1均值滤波器
均值滤波器主要有算术均值滤波器、几何均值滤波器、谐波均值滤波器、逆谐波均值滤波器。

(1)算术均值滤波器
算术均值滤波器是最简单的均值滤波器,如果xy S 表示中心在(),x y 的点、尺寸为m n ⨯的矩形子图像窗口的坐标组。

算术均值滤波算法过程就是计算由xy S 定义的区域中被干扰图像(),g x y 的平均值。

在任意点(),x y 处复原图像ˆf 的值就是用xy S 定义的区域的像素计算出来的算术平均值。

即:
()()
()∑∈=
xy
S t s t s g mn
y x f ,,1
,ˆ (5-20)
这个操作也可以用系数为1mn 的卷积模板来实现。

(2)几何均值滤波器
用几何均值滤波器复原一幅图像由如下表达式给出:
()()()mn
S t s xy t s g y x f 1
,,,ˆ⎥⎥
⎦⎤⎢⎢⎣⎡=∏∈ (5-21) 其中每一个复原像素由子图像窗口中像素点的乘积并自乘到1mn 次幂得出。

几何均值滤波器所达到的平滑度可以与算法均值滤波器相比,在滤波过程中可以丢失更少的图像细节。

(3) 谐波均值滤波器
谐波均值滤波器滤噪操作如下表示:
()()
()∑
∈=
xy
S t s t s g mn
y x f ,,1,ˆ (5-22)
谐波滤波器对于“盐”噪声、高斯噪声效果比较好,但是不适合于“胡椒”噪声。

(4)逆谐波均值滤波器
逆谐波均值滤波器对一幅图像进行恢复操作依据如下公式:
()()
()()
()∑

∈∈+=
xy
xy
S t s Q
S t s Q t s g t s g y x f ,,1
,,,ˆ (5-23)
其中Q 称为滤波器的阶数。

这种滤波器适合减少或者在实际中消除椒盐噪声,当Q 为正数时,滤波器用于滤除“胡椒”噪声,当Q 为负数时,滤波器用于滤除“盐”噪声。

当0Q =时,逆谐波均值滤波器退化为算术均值滤波器,当1Q =-时,它退化为谐波均值滤波器。

2顺序统计滤波器
顺序统计滤波器的响应基于由滤波窗口包围的图像区域中像素点的排序结果,滤波器在任意点的响应由排序结果决定。

主要有中值滤波器、最大值和最小值滤波器、中点滤波器、修正后的阿尔法均值滤波器等。

(1)中值滤波器
中值滤波器是最著名的顺序统计滤波器,它的输出响应是窗口中像素排序结果的中值:
()()()
t s g m e d i a n y x f xy
S t s ,,ˆ,∈= (5-24)
像素的原始值包含在中值的计算结果中。

因为它对很多随机噪声都有很好的去噪能力,且在相同窗口尺寸下比线性滤波器引起的模糊少,所以中值滤波器应用很普遍。

中值滤波器对滤除单极或双极脉冲噪声效果非常好。

(2) 最大值/最小值滤波器
中值滤波器采用的是排序结果中的中值,而从基本的统计学上讲排序还有其它很多的可能性。

当使用排序中的最大值时,得到最大值滤波器如下:
()()()t s g y x f
xy
S t s ,max ,ˆ,∈= (5-25)
这种滤波器在发现图像中的亮点非常适用。

同样,因为胡椒噪声是非常低的值,最大值滤波器是选择子图像xy S 中的最大值,可以滤除胡椒噪声。

如果选择排序中的最小值,即为最小值滤波器:
()()()
t s g y x f
xy
S t s ,min ,ˆ,∈= (5-26)
这种滤波器发现图像中的暗点非常有用,使用最小值滤波器,可以滤除盐噪声。

(3)中点滤波器
中点滤波器是取滤波器涉及范围内的最大值和最小值之间的中点:
()()()()()⎥⎥⎦⎤
⎢⎢⎣⎡+=∑∑
∈∈xy xy
S t s S t s t s g t s g y x f ,,,min
,max
21,ˆ (5-27)
这种滤波器结合了顺序统计和求平均,对于高斯和均匀随机分布噪声有较好的效果。

(4) 修正后的阿尔法均值滤波器
假设在xy S 邻域内去掉(),g s t 最高灰度值的2d 和最低灰度值的2d ,用(),
r g s t 代表
剩余的m n d -个像素,根据这些像素的平均值形成的滤波器被称为修正后的阿尔法均值滤波器。

()()
()∑∈-=
xy
S t s r
t s g d
mn y x f ,,1,ˆ (5-28)
其中d 可以取0到1m n -之间的任意整数。

当0d =时,修正后的阿尔法均值滤波器退化为算术均值滤波器;当()12d mn =-时,修正后的阿尔法均值滤波器退化为中值滤波器。

修正后的阿尔法均值滤波器当d 取其它值时,结合了均值滤波器与中值滤波器的优点,对多种噪声感染形成的混合噪声非常有用。

4 自适应滤波器
以上提到的滤波器应用于图像时,并没有充分考虑图像的局部特征的变化,自适应滤波器基于由m n ⨯矩形窗口xy S 定义的区域内图像的统计特性,具有更好的滤波性能。

(1)自适应均值滤波器
随机变量最简单的统计参量是均值和方差。

因为它们是与图像状态紧密相关的数据,这些参数是自适应滤波器的基础。

均值给出了区域图像的灰度平均值的度量,而方差给出了这个区域的对比度的度量。

滤波器作用于局部区域xy S ,在任何点(),x y 上的响应基于以下四个量: (),g x y 表示噪声图像在点(),x y 上的值 2
ησ表示干扰(),f x y 以形成(),g x y 的噪声方差
L m 表示在xy S 上像素点的局部均值
2
L σ表示在xy S 上像素点的局部方差
滤波器的输出响应如下:
如果2
ησ为零,滤波器应该简单地返回(),g x y 的值。

(在零噪声情况下(),g x y 等于(),f x y )
如果局部方差和2
ησ是高相关的,那么滤波器要返回一个(),g x y 的近似值。

如果两个方差相等,滤波器返回区域xy S 上的算术平均值。

(在局部面积与全部图像有相同特性的条件下,局部噪声简单地用求均值来降低)
为了获得()ˆ,f x y ,基于这些假设的自适应表达式可以写为:
()()()[]
L L
m y x g y x g y x f --
=,,,ˆ2
2σση
(5-29)
在实际中对于式(5-29)的实现应构建一个测试,以便如果条件2
2
L ησσ>发生,把比率设置成1。

这使该滤波器为非线性的,但它可以防止由于缺乏图像噪声方差的知识而产生的无意义的结果(即负灰度值)。

另一个方法是允许负灰度值,在最后重新标定灰度值。

这个结果将损失图像的动态范围。

2.自适应中值滤波器
中值滤波器在冲激噪声空间密度不大(根据经验,噪声感染概率小于0.2),性能很好。

自适应中值滤波器可以处理更大概率的冲激噪声,另外在平滑非冲激噪声时可以更好地保存细节,这是传统中值滤波器做不到的。

符号定义如下:
xy Z 表示在坐标(),x y 上的灰度值 m i n Z 表示窗口xy S 中灰度最小值 m a x Z 表示窗口xy S 中灰度最大值 m e d
Z 表示窗口xy S 中灰度中值
m
a x S 表示窗口xy S 的最大值
自适用中值滤波器的工作在两个层次,A 层和B 层,如下: A 层:if (Zmin<Zmed<Zmax) and (Zmin<Zxy<Zmax ) Zxy=Zxy;
else if (Zmin<Zmed<Zmax) and ! (Zmin<Zxy<Zmax ) Zxy=Zmed;
else if ! (Zmin<Zmed<Zmax) { increase the window size; if window size >Smax Zxy=Zxy; else
repeat from the begin; }
B 层:if (Zmin<Zmed<Zmax) and (Zmin<Zxy<Zmax ) Zxy=Zxy;
else if (Zmin<Zmed<Zmax) and ! (Zmin<Zxy<Zmax )
Zxy=Zmed;
else if ! (Zmin<Zmed<Zmax) { increase the window size; if window size >Smax Zxy=Zxy; else
repeat from the begin; }
该算法的主要目的是滤除椒盐噪声,平滑其它非冲激噪声,减小诸如边缘细化或粗化的失真。

m in Z 和m ax Z 的值进行统计后被算法认为是类冲激式的噪声成分,即使它们在图像中不是最高和最低的可能象素点。

从算法中可以看到,A 层的目的是决定中值滤波器的输出m ed Z 是否是一个脉冲(黑或白)。

如果条件min max med Z Z Z <<有效,则 m ed Z 就不是脉冲。

在该情况下就转到B 层,检查一下窗口中心点xy Z 本身是否是一个脉冲,如果条件m in m ax xy Z Z Z <<为真,则xy Z 也不是脉冲。

在这种情况下,算法输出xy Z 本身。

如果条件m ax m in xy Z Z Z <<为假,像素值xy Z 是一个极值且算法输出中值m ed Z 。

假设在A 层找到一个脉冲,算法就会扩大窗口尺寸并重复A 层。

如果达到了最大的窗口尺寸还是能找到脉冲,算法就返回xy Z 值。

注意:如果噪声概率过小或者m ax S 在允许的范围内越大,过早推出条件的可能性就越小。

这应该是合理的,随着脉冲密度的增大,需要更大的窗口消除尖峰噪声。

3.自适应梯度倒数加权滤波器
图像中往往存在相邻区域的变化大于区域内部的变化,在同一区域中间像素的变化小
于边缘像素的变化。

梯度值正比于邻域像素灰度级之差,即图像变化缓慢区域,梯度值小,反之则大。

如果取梯度的倒数,以梯度倒数作权重因子,则区域内部的相邻点权重就大于外部像素点的权重。

这种滤波器的主要贡献来自于区域内部的,对于保持图像的细节会更有效。

下面以33⨯的窗口为例,如下图所示。

定义:1
(,,,)(,)(,)
g i j m n D i m j n D i j =
++- (5-30)
并规定(,,)(,)0D i m j n D i j ++-=时,(,,,)0g i j m n =。

则窗口内每一个像素点对应的权值为:
1
1
11
(,,,)
(,,,)(1),,0(,,,)
m n g i j m n w i j m n r m n g i j m n =-==
⨯-≠∑∑ (5-31)
最后的倒数加权滤波输出为:
1
1
11
(,)(,,,)(,,,)m n y D i j r w i j m n D i j m n =-=-=⨯+
⨯∑∑
(5-32)
式中r 是中心像素占有的权值,可以通过调节r 的值来控制周围各点对滤波作用。

5.2.2空间域滤波方法的MATLAB 实现
从上一节可以看出:空间域的滤波方法主要有线性与非线性两种,各类均值滤波是线性滤波器,而统计滤波器是非线性滤波器。

均值滤波的主要思路是将像素(,)x y 特定邻域中每个像素与相应的系数想相乘,然后将结果累加,取平均做为点(,)x y 的滤波结果。

若邻域大小为m n ⨯,则需要m n ⨯系数,由这些系数组成的m n ⨯的矩阵称为滤波掩模、滤波窗口或为滤波模板。

滤波过程是将滤波掩模的中心逐点移动到图像的每个像素处,然后将滤波掩模 的系数与对应像素相乘,取其平均值即为中心点像素的滤波结果,这类似于信号分析中的相关运算,如果滤波掩模以中心对称,则此过程也可以理解成为信号分析的卷积过程。

因为卷积是线性移不变系统的数学抽象,所以此类滤波方法是线性的。

1.线性滤波器的MA TLAB 实现
MA TLAB 工具箱提供了imfilter()实现线性空间滤波,调用格式为:
>>g=imfilter(f,w,mode,boundary_options,size_option);
其中,参数f 为待滤波图像,w 为滤波掩模矩阵,mode 规定了计算方式,如果为’corr ’,则使用相关运算,如果是’conv ’,则使用卷积运算,默认值为’conv ’。

boundary_options 决定了对边界像素的处理方式,如果为p,则以值p 来填充图像边界,如果为’replicate ’,则以外边界像素值填充图像边界,如果为’symmetric ’,则通过镜像反射来生成边界像素值,如果为’circular ’,则将图像边界看成为一个二维周期函数的一个周期来扩展。

参数size_option 决定输出图像的大小,如果为’full ’,则输出图像与扩展图像大小相同,如果是’same ’,则输出图像与输入图像大小相同,缺省值为’same ’。

滤波过程的计算结果是双精度类型,但imfilter 函数会将结果转换为输入图像原有的数据类型,如果输入图像为整数型,则计算结果中超出取值范围的数据将以最大值或最小值代替,小数部分将会四舍五入。

如果要求更高的精度,则在使用该函数之前,应将输入图像通过imdouble()或double 转换为double 类型。

例5.3 对例5.1中感染高斯噪声的Lena 图像利用MA TLAB 编程应用均值滤波器进行滤波。

编程如下:
>> f=imread('E:\matlab7\lena.bmp'); >> g=rgb2gray(f);
>> g=im2double(f);
>> g1=imnoise(g,'gaussian',0,0.01); >> imshow(g1); >> w=ones(3,3)/9;
>> d=imfilter(g1,w,'conv','replicate','same'); >> figure;
>> imshow(d,[]);
该程序是生成33⨯的滤波掩模,然后调用imfilter 实现滤波,由于imfilter 只是计算卷积运算,所以要准确计算均值应除以滤波掩模的元素数,因此在生成由1组成的滤波掩模w 时,除以滤波掩模的元素数,执行结果见图5.3(b)。

算术均值滤波器可以直接调用函数imfilter()写成,但是几何均值滤波必须先通过数学变换才能调用imfilter(),对式 (5-21)两边求对数,有:
()()(),log(,)ˆlog(,)xy
s t S g s t f x y m n
∈=
⨯∑
(5-33)
则实现几何均值滤波的程序如下: >> w=ones(3,3)/9;
>> warning off
>> d1=exp(imfilter(log(g1),w,'replicate','same')); >> warning on >> figure;
>> imshow(d1,[]);
执行结果见图5.3(c)。

根据式(5-22),谐波均值滤波器相当于用滤波掩模的元素数除以原图像的倒数与滤波掩模的卷积运算结果,对应程序如下:
>> w=ones(3,3);
>> d2=3*3./imfilter(1./(g1+eps),w,'replicate','same'); >> figure;
>> imshow(d2,[]);
其中,eps 是MA TLAB 的最小常量,引入原因是以防某些像素值为0造成分母为零,程序的执行结果见5.3(d)。

根据(5-23),逆谐波均值滤波器相当于原图像的Q 次幂与滤波掩模的卷积运算结果除以原图像的Q-1次幂与滤波掩模的卷积运算结果。

,对应程序如下:
>> w=ones(3,3);
>>q=3;
>> d3=imfilter((g1).^q,w,'replicate','same'); >> d4=imfilter((g1).^(q-1),w,'replicate','same'); >>d3=d3./d4;
>> figure;
>> imshow(d2,[]);
执行结果见图5.3(e)。

图5.3感染均值为0,方差为0.01高斯噪声的Lena 图片用线性滤波器的操作结果 为了配合函数imfilter()的使用,MA TLAB 还提供了产生线性空间滤波器滤波掩模的函数fspecial(),其调用格式为:
>>w=fspecial(‘type ’,parameters);
其中,参数’type ’表示滤波器的类型,parameters 规定了对应类型滤波器的参数。

’type ’可以取以下值: (1)’average ’
A verage 规定产生矩形均值滤波器的滤波掩模,其调用格式为:
>>w=fspecial(‘average ’,[r,c]);
结果是产生r c ⨯大小的均值滤波矩阵,如果省略参数r,c ,则缺省值为33⨯。

(2)’disk ’
disk 规定产生圆形均值滤波器的滤波掩模,其调用格式为:
>>w=fspecial(‘disk ’,r);
结果是产生半径为r 的圆形均值滤波掩模,如果省略参数r,,则缺省值为5。

(3)’gaussian ’
gaussian 规定产生gaussian 低通滤波器的滤波掩模,其调用格式为:
>>w=fspecial(‘gaussian ’,[r,c],sig); 结果是产生大小为r c ⨯、标准差为sig 的gaussian 低通滤波器的滤波掩模,如果省略参数r,c ,则缺省值为33⨯,标准差sig 的缺省值0.5。

(4)’laplacian ’
laplacian 规定产生大小为33⨯的拉普拉斯滤波掩模,其调用格式为:
>>w=fspecial(‘laplacian ’,alpha);
结果是产生33⨯大小的拉普拉斯滤波矩阵,形状由参量alpha 规定,缺省值0.5。

拉普拉斯滤波矩阵与参量alpha=α的关系是:
(a)感染均值0,方差0.01高斯噪声
(b) 算术均值滤波器滤波结果
(c) 几何均值滤波器滤波结果
(d) 谐波均值滤波器滤波结果
(e) 逆谐波均值滤波器滤波结果。

相关文档
最新文档