资源描述
图像增强技术研究
1 图像增强概述
1.1 图像增强定义
图像增强是指按特定需要突出一幅图像中一些信息,同时减弱或去除一些不需要信息处理方法,也是提升图像质量过程。图像增强目标是使图像一些特征方面愈加鲜明、突出,使处理后图像更适合人眼视觉特征或机器分析,方便于实现对图像更高级处理和分析。图像增强过程往往也是一个矛盾过程:图像增强期望既去除噪声又增强边缘。不过,增强边缘同时会同时增强噪声,而滤去噪声又会使边缘在一定程度上模糊,所以,在图像增强时候,往往是将这两部分进行折中,找到一个好代价函数达成需要增强目标。传统图像增强算法在确定转换函数时常是基于整个图像统计量,如:ST转换,直方图均衡,中值滤波,微分锐化,高通滤波等等。这么对应于一些局部区域细节在计算整幅图变换时其影响因为其值较小而常常被忽略掉,从而局部区域增强效果常常不够理想,噪声滤波和边缘增强这二者矛盾较难得四处理。
1.2 常见图像增强方法
(1) 直方图均衡化
有些图像在低值灰度区间上频率较大,使得图像中较暗区域中细节看不清楚。这时能够经过直方图均衡化将图像灰度范围分开,而且让灰度频率较小灰度级变大,经过调整图像灰度值动态范围,自动地增加整个图像对比度,使图像含有较大反差,细节清楚。
(2) 对比度增强法
有些图像对比度比较低,从而使整个图像模糊不清。这时能够按一定规则修改原来图像每一个象素灰度,从而改变图像灰度动态范围。
(3) 平滑噪声
有些图像是经过扫描仪扫描输入、或传输通道传输过来。图像中往往包含有多种多样噪声。这些噪声通常是随机产生,所以含有分布和大小不规则性特点。这些噪声存在直接影响着后续处理过程,使图像失真。图像平滑就是针对图像噪声操作,其关键作用是为了消除噪声,图像平滑常见方法是采取均值滤波或中值滤波,均值滤波是一个线性空间滤波,它用一个有奇数点掩模在图像上滑动,将掩模中心对应像素点灰度值用掩模内全部像素点灰度平均值替换,假如要求了在取均值过程中掩模内各像素点所占权重,即各像素点所乘系数,这时就称为加权均值滤波;中值滤波是一个非线性空间滤波,其和均值滤波区分是掩模中心对应像素点灰度值用掩模内全部像素点灰度值中间值替换。
(4) 锐化
平滑噪声时常常会使图像边缘变模糊,针对平均和积分运算使图像模糊,可对其进行反运算采取微分算子使用模板和统计差值方法,使图像增强锐化。图像边缘和高频分量相对应,高通滤波器能够让高频分量通畅无阻,而对低频分量则充足限制,经过高通滤波器去除低频分量,也能够达成图像锐化目标。
1.3 图像增强现实状况和应用
计算机图像处理发展历史不长,但已经引发了大家重视。图像处理技术始20世纪60年代,因为当初图像存放成本高,处理设备造价高,所以其应用面很窄。1964年美国加州理工学院喷气推进试验室,首次对徘徊者7号太空飞船发回月球照片进行了处理,得到了前所未有清楚图像,这标志着图像处理技术开始得到实际应用。70年代进入发展期,出现和卫星遥感图像,对图像处理发展起到了很好促进作用。80年代进入普及期,此时微机己经能够负担起图形图像处理任务。VLSI出现更使得处理速度大大提升,其造价也深入降低,极大促进了图像处理系统普及和应用。90年代是图像处理技术实用化时期,图像处理信息量巨大,对处理速度要求极高。二十一世纪图像处理技术要向高质量化方面发展,实现图像实时处理,采取数字全息技术使图像包含最为完整和丰富信息,实现图像智能生成、处理、了解和识别[7]。
现在,很多新增强算法全部充足利用了周围邻域这一关键信息,形成了很多局部处理灰度调整算法,该方法关键利用了邻域统计特征。其中自适应滤波器既能平滑又能保护边缘,其基础思想是滤波器参数可依据像素所在邻域情况而自适应选择,也可描述为加权平均滤波器,能够很好平滑噪声区域,并能保护较显著边缘,但对图像细节保护较差,该算法对脉冲噪声敏感,而且模型性能受参数影响比较大。多年来,模糊集合理论在图像处理中得到了广泛应用。比如Yang和Tohl采取模糊规则改善传统中值滤波器中滤波窗口尺度选择,改善了算法对高斯噪声抗噪性能。Russoti提出自适应模糊滤波算子能够很好保护图像细节和滤除高斯噪声,其算法中窗口大小由邻域一致性程度决定,该一致性程度由一个模糊逻辑规则导出。图像增强中变换域增强也得到很广泛应用,比如付傅氏变换、离散余弦变换、小波变换等,其中小波是多年来发展起来一个新时频分析工具,它含有时频局部化能力和多分辨率分析能力,使得它很适合于信号处理邻域。对图像进行多尺度小波变换后,不一样频率信号出现在不一样尺度子带图像上,有了这些特征就能很好对感爱好部分进行增强。图像变换方法是多个多样。
经过采取合适增强处理能够将原本模糊不清甚至根本无法分辨原始图片处理成清楚、明晰富含大量有用信息可使用图像,所以图像增强技术在很多领域得到广泛应用。在图像处理系统中,图像增强技术作为预处理部分基础技术,是系统中十分关键一环。迄今为止,图像增强技术己经广泛用于军事、地质、海洋、森林、医学、遥感、微生物和刑侦等方面。
2 图像增强方法和原理
2.1 图像变换
人和电脑对事物了解是不一样,对于人来说,文字信息要比图像信息抽象,不过对于电脑来说,图像信息要比文字信息抽象。所以,对于计算机来说,要对图像进行处理,并不是一件轻易事情。为了快速有效对图像进行处理和分析,我们通常全部需要对图像进行部分变换,把原来图像信息变为另一张形式,使计算机更轻易了解、处理和分析。这种变换就是所谓图像变换。
图像变换是指图像二维正交变换,它在图像增强、复原、编码等方面有着广泛应运。如傅立叶变换后平均值正比于图像灰度平均值,高频分量则表明了图像中目标边缘强度和方向,利用这些性质能够从图像中抽取出特征;又如在变换域中,图像能量往往集中在少数项上,或说能量关键集中在低频分量上,这时对低频成份分配较多比特数,对高频成份分配较少比特数,即可实现图像数据压缩编码。
2.1.1 离散图像变换通常表示式
对于二维离散函数
x=0,1,2,…,M-1;y=0,1,2,…,N-1 (2.1)
有变换对
(2.2)
u=0,1,2,…,M-1 v=0,1,2,…,N-1
(2.3)
x=0,1,2,…,M-1 y=0,1,2,…,N-1
变换核可分离离散图像变换表示为:
(2.4)
如此,二维离散变换就能够用两次一维变换实现。
2.1.2 离散沃尔什变换
因为傅立叶变换变换核由正弦余弦函数组成,运算速度受影响。要找另一个正交变换,要运算简单且变换核矩阵产生方便。Walsh Transform矩阵简单,只有1和-1,矩阵轻易产生,有快速算法[1]。
一维离散沃尔什变换
假如N=2,则离散 f(x) ( x=0,1, 2,…,N-1)沃尔什变换
u=0,1,2,…,N-1 (2.5)
x=0,1,2,…,N-1 (2.6)
二维离散沃尔什变换
(2.7)
(u=0,1,2…,M-1 v=0,1,2…,N-1)
(2.8)
(x=0,1,2…,M-1 y=0,1,2…,N-1)
这里假定了M=2,N=2
从上式可知,反正变换核含有可分离性,即
(2.9)
所以,二维离散沃尔什变换可由两次变换来实现。
2.2 灰度变换
灰度变换可使图像动态范围增大,对比度得到扩展,使图像清楚、特征显著,是图像增强关键手段之一。它关键利用点运算来修正像素灰度,由输入像素点灰度值确定对应输出点灰度值,是一个基于图像变换操作。灰度变换不改变图像内空间关系,除了灰度级改变是依据某种特定灰度变换函数进行之外,能够看作是“从像素到像素”复制操作。基于点运算灰度变换可表示为:
(2.10)
其中T被称为灰度变换函数,它描述了输入灰度值和输出灰度值之间转换关系。一旦灰度变换函数确定,该灰度变换就被完全确定下来。
灰度变换包含方法很多,如逆反处理、阈值变换、灰度拉伸、灰度切分、灰度级修正、动态范围调整等。即使它们对图像处理效果不一样,但处理过程中全部利用了点运算,通常可分为线性变换、分段线性变换、非线性变换。
2.2.1 线性变换
假定原图像f(x,y)灰度范围为[a,b],变换后图像g(x,y)灰度范围线性扩展至[c,d],则对于图像中任一点灰度值P(x,y),变换后为g(x,y),其数学表示式以下所表示[1]。
(2.11)
若图像中大部分像素灰度级分布在区间[a,b]内,max f为原图最大灰度级,只有很小一部分灰度级超出了此区间,则为了改善增强效果,能够令
(2.12)
在曝光不足或过分情况下,图像灰度可能会局限在一个很小范围内,这时得到图像可能是一个模糊不清、似乎没有灰度层次图像。采取线性变换对图像中每一个像素灰度作线性拉伸,将有效改善图像视觉效果。
2.2.2 分段线性变换
为了突出图像中感爱好目标或灰度区间,相对抑制不感爱好灰度区间,可采取分段线性变换,它将图像灰度区间分成两段乃至多段分别作线性变换。进行变换时,把0-255整个灰度值区间分为若干线段,每一个直线段全部对应一个局部线性变换关系。图2.1所表示,为二段线性变换,(a)为高值区拉伸,(b)为低值区拉伸[9]。
图2.1 二段线性变换
2.2.3 非线性变换
非线性变换就是利用非线性变换函数对图像进行灰度变换,关键有指数变换、对数变换等。
指数变换,是指输出图像像素点灰度值和对应输入图像像素灰度值之间满足指数关系,其通常公式为[1]:
(2.13)
其中b为底数。为了增加变换动态范围,在上述通常公式中能够加入部分调制参数,以改变变换曲线初始位置和曲线改变速率。这时变换公式为:
(2.14)
式中a,b,c全部是能够选择参数,当f(x,y)=a时,g(x,y)=0,此时指数曲线交于X轴,由此可见参数a决定了指数变换曲线初始位置参数c决定了变换曲线陡度,即决定曲线改变速率。指数变换用于扩展高灰度区,通常适于过亮图像。
对数变换,是指输出图像像素点灰度值和对应输入图像像素灰度值之间为对数关系,其通常公式为:
(2.15)
其中表示以10为底,也能够选择自然对数。为了增加变换动态范围,在上述通常公式中能够加入部分调制参数,这时变换公式为:
(2.16)
式中a,b,c全部是能够选择参数,式中f(x,y)+1是为了避免对0求对数,确保。当f(x,y)=0时,,则y=a,则a为Y轴上截距,确定了变换曲线初始位置变换关系,b、c两个参数确定变换曲线改变速率。对数变换用于扩展低灰度区,通常适适用于过暗图像。
2.3 直方图变换
2.3.1 直方图修正基础
图像灰度直方图是反应一幅图像灰度级和出现这种灰度级概率之间关系图形。
灰度级为[0,L-1]范围数字图像直方图是离散函数h()=,这里是第k级灰度,是图像中灰度级为像素个数。通常以图像中像素数目标总和n去除她每一个值,以得到归一化直方图,公告以下:
k=0,1,2,…,L-1 (2.17)
且
所以给出了灰度级为发生概率估量值。归纳起来,直方图关键有一下几点性质:
(1)直方图中不包含位置信息。直方图只是反应了图像灰度分布特征,和灰度所在位置没相关系,不一样图像可能含有相近或完全相同直方图分布。
(2)直方图反应了图像整体灰度。直方图反应了图像整体灰度分布情况,对于暗色图像,直方图组成集中在灰度级低(暗)一侧,相反,明亮图像直方图则倾向于灰度级高一侧。直观上讲,能够得出这么结论,若一幅图像其像素占有全部可能灰度级而且分布均匀,这么图像有高对比度和多变灰度色调。
(3)直方图可叠加性。一幅图像直方图等于它各个部分直方图和。
(4)直方图含有统计特征。从直方图定义可知,连续图像直方图是一位连续函数,它含有统计特征,比如矩、绝对矩、中心矩、绝对中心矩、熵。
(5)直方图动态范围。直方图动态范围是由计算机图像处理系统模数转换器灰度级决定。
因为图像视觉效果不好或特殊需要,常常要对图像灰度进行修正,以达成理想效果,即对原始图像直方图进行转换(修正):
一幅给定图像灰度级分布在0≤r≤1范围内。能够对[0,1]区间内任何一个r进行以下变换:
s=T(r) (2.18)
变换函数T应满足以下条件:
a.在0≤r≤1区间内,单值单调增加;
b.对于0≤r≤1,有0≤≤1。
这里第一个条件确保了图像灰度级从白到黑次序不变。第二个条件则确保了映射变换后像素灰度值在许可范围内。满足这两个条件,就确保了转换函数可逆。
2.3.2 直方图均衡化
直方图均衡化方法是图像增强中最常见、最关键方法之一。直方图均衡化是把原图像直方图经过灰度变换函数修正为灰度均匀分布直方图,然后按均衡直方图修正原图像。它以概率论为基础,利用灰度点运算来实现,从而达成增强目标。它变换函数取决于图像灰度直方图累积分布函数。概括说,就是把一已知灰度概率分布图像,经过一个变换,使之演变成一幅含有均匀概率分布新图像。有些图像在低值灰度区间上频率较大,使得图像中较暗区域中细节看不清楚。这时能够将图像灰度范围分开,而且让灰度频率较小灰度级变大。当图像直方图为一均匀分布时,图像信息熵最大,此时图像包含信息量最大,图像看起来就显得清楚[10]。
直方图均衡化变换函数图2.2所表示,设r,s分别表示原图像和增强后图像灰度。为了简单,假定全部像素灰度已被归一化。当r=s=0时,表示黑色;当r=s=1时,表示白色;当r,s在[0,1]之间时,表示像素灰度在黑白之间改变。灰度变换函数为:s=T(r)。
图2.2 直方图均衡化变换函数
实际上,因为直方图是近似概率密度函数,用离散灰度级作变换时极少能够得到完全平坦结果,而且,变换后往往会出现灰度级降低现象,这种现象被称为“简并”现象。这是像素灰度有限肯定结果。因为上述原因,数字图像直方图均衡只能是近似。直方图均衡化处理可大大改善图像灰度动态范围。降低简并现象通常可采取两种方法:一个简单方法是增加像素比特数。
比如,通常见8比特来代表一个像素,而现在用12比特来表示一个像素,这么就能够降低简并现象发生机会,从而降低灰度层次损失。另外,采取灰度间隔放大理论直方图修正方法也能够降低简并现象。这种灰度间隔放大能够根据眼睛对比度灵敏特征和成像系统动态范围进行放大。通常实现方法采取以下几步:
(1)统计原始图像直方图;
(2)依据给定成像系统最大动态范围和原始图像灰度级来确定处理后灰度级间隔;
(3)依据求得步长来求变换后新灰度;
(4)用处理后新灰度替换处理前灰度。
2.3.3 直方图要求化
直方图均衡化是以累计分布函数变换法为基础直方图修正技术,使得变换后灰度概率密度函数是均匀分布,所以,它不能控制变换后直方图而交互性差。这么,在很多特殊情况下,需要变换后图像直方图含有某种特定曲线,比如对数和指数等,直方图要求化能够处理这一问题。
直方图要求化方法以下:假设是原始图像分布概率密度函数,是期望得到图像概率密度函数。
先对原始图像进行直方图均衡化处理,即:
(2.19)
假定已经得到了所期望图像,而且它概率密度函数是。对该图像也做均衡化处理,即:
(2.20)
因为对于这两幅图像,一样作了均衡化处理,所以她们含有一样均匀密度。其中(2.9)逆过程为,则假如用从原始图像中得到均匀灰度级S来替换逆过程中u,其结果灰度级将是所要求概率密度函数灰度级:
(2.21)
依据以上思绪,能够总结出直方图要求化增强处理步骤以下:
(1)将原始图像进行均衡化处理;
(2)要求期望灰度概率密度函数,用(2.22)式计算它累计分布函数G(z);
(3)将逆变换函数用到步骤(1)中所得灰度级。
上述三步得到了原始图像一个处理方法,只要求G(s)是可逆即可进行。不过,对于离散图像,因为G(s)是一个离散阶梯函数,不可能有逆函数存在,对此,只能进行截断处理,必将不可避免造成变换后图像直方图通常不能和目标直方图严格匹配。
2.4 图像平滑和锐化
2.4.1 平滑
取得图像可能会因为多种原所以被污染,产生噪声。常见图像噪声关键有加性噪声、乘性噪声和量化噪声等。噪声并不仅限于人眼所见失真,有些噪声只针对一些具体图像处理过程产生影响。图像中噪声往往和正常信号交织在一起,尤其是乘性噪声,假如处理不妥,就会破坏图像本身细节,如会使线条、边界等变得模糊不清。有些图像是经过扫描仪扫描输入或传输通道传输过来。图像中往往包含有多种多样噪声。这些噪声通常是随机产生,所以含有分布和大小不规则性特点。图像平滑就是针对图像噪声操作,其关键作用是为了消除噪声。怎样既平滑掉噪声又尽可能保持图像细节,是图像平滑关键研究任务。这些噪声存在直接影响着后续处理过程,使图像失真。这时能够采取线性滤波和中值滤波方法。
(1) 线性滤波
线性滤波通常采取是领域平均法。对于给定图像f(x,y)中每一个点(m,n),取其领域s。设s含有M个像素,取其平均值作为处理后所得图像像素点(m,n)处灰度。设S是3*3正方形邻域,点(m,n)在S中心,则:
(2.22)
(2) 中值滤波
中值滤波就是输出图像某点象素等于该象素邻域中各象素灰度中间值。给定图像f(x,y)中每一个点(m,n),取其领域s。设s含有M个像素{a1,a2,⋯,aM},将其按大小排序,若M是奇数时,则在中间那个象素值就是修改后图像g(x,y)在点f(m,n)处像素值;若M是偶数则取中间两个象素平均值作为修改后图像g(x,y)在点(m,n)处像素值。
2.4.2 锐化
图像平滑往往使图像中边界、轮廓变得模糊,为了降低这类不利效果影响,这就需要利用图像锐化技术,使图像边缘变得清楚。图像锐化处理目标是为了使图像边缘、轮廓线和图像细节变得清楚,经过平滑图像变得模糊根本原因是图像受到了平均或积分运算,所以能够对其进行逆运算(如微分运算)就能够使图像变得清楚。从频率域来考虑,图像模糊实质是因为其高频分量被衰减,所以能够用高通滤波器来使图像清楚。为了要把图像中间任何方向伸展边缘和轮廓变得清楚,我们期望对图像某种运算是各向同性。
(1) 梯度法
梯度是图像处理中最常见一个一阶微分方法。对图像函数F(j,k),其在点(j,k)上梯度定义为矢量:
(2.23)
从梯度性质可知,梯度方向确定了图像F(j,k)最大改变率方向,G[F(j,k)]幅度为下式:
(2.24)
对于数字图像,用差分来近似微分。为了便于编程和提升运算速度,能够以下进行绝对值运算:
(2.25)
一旦计算梯度算法确立以后,就能够有很多方法来使图像轮廓突出。最简单方法就是令(x,y)点上锐化后图像函f(x,y)数值等于原始图像在该点上梯度值,即:
(2.26)
此法缺点是处理后图像仅显示出轮廓,灰度平缓改变部分因为梯度值较小而显得很黑。
(2) 拉普拉斯算子
拉普拉斯算子是线性二阶微分算子,和梯度算子一样,含有旋转不变性,从而满足不一样走向图像边界锐化要求。拉普拉斯算子对图像中噪声很敏感,为了降低噪声影响,在做增强处理之前,先将待处理图像进行平滑,再做拉普拉斯运算。
相对于梯度算子,拉普拉斯算子含有增强边缘正确定位优点。因为梯度一阶微分算子会在较大范围内形成梯度值,差分结果不适合正确定位。然后,二阶差分算子过零特征,能够使边缘增强后正确定位。
(3) 高通滤波
图像边缘和高频分量相对应,高通滤波器能够让高频分量通畅无阻,而对低频分量则充足限制,从而达成图像锐化目标。建立在离散卷积基础上空间域高通滤波关系式以下:
(2.27)
式中为锐化输出;
为输入图像;
为冲击响应阵列(卷积阵列)。
3. Matlab图像增强
图像增强是按特定需要突出一幅图像中一些信息,同时,消弱或去除一些信息使得图像愈加实用。图像增强技术关键包含直方图修改处理、图像平滑处理、图像尖锐化处理和彩色技术等。
3.1 图像增强技术概述
图像增强技术关键包含:直方图修改处理,图像平滑处理,图像尖锐化处理,彩色图像处理。从纯技术上讲关键有两类:频域处理法和空域处理法。
频域处理法关键是卷积定理,采取修改图像傅立叶变换方法实现对图像增强处理技术;空域处理法:是直接对图像中像素进行处理,基础上是以灰度映射变换为基础。
3.1.1空域滤波增强
使用空域模板进行图像处理被称为空域滤波,模板本身被称为空域滤波器。空域滤波器包含:线性滤波器和非线性滤波器。空域滤波处理效果来分类,能够分为平滑滤波器,和锐化滤波器,平滑目标在于消除混杂在图像中干扰原因,改善图像质量,强化图像表现特征。锐化目标在于增强图像边缘,和对图像进行识别和处理。
3.1.2 平滑滤波器
用于模糊处理和减小噪声。平滑线性空间滤波器输出(响应)是包含在滤波掩模邻域内像素简单平均值。所以这些滤波器也被称为均值滤波器。平滑滤波器概念很简单:它是用滤波掩模确定领域内像素平均值去替换图像每个像素点值。这种处理降低了图像灰度尖锐化。每个掩模前边乘数等于它系数值和,以计算平均值。
我们常常见这些极端类型模糊处理来去除图像中部分小物体。比如:在matlab中利用线性平滑滤波器处理一副图像I=imread('eight.tif');
J=imnoise(I,'salt & pepper',0.02);
>> %添加椒盐噪声
>> subplot(221)
>> imshow(I)
>> title('原图像')
>> subplot(222)
>> imshow(J)
>> title('添加椒盐噪声图像')
K1=filter2(fspecial('average',3),J)/255;
>> %应用3*3邻域窗口法
>> subplot(223),imshow(K1)
>> K2=filter2(fspecial('average',7),J)/255;
>> %应用7*7邻域窗口法
>> subplot(224),imshow(K2)
3.1.3 中值滤波器
其原理是把数字图像或数字序列中某一点值用该点一个邻域中各点值中值交换。中值滤波器窗口能够取方形,圆形,十字形等。
比如:滤波函数图像处理1
smoothingMedianFilterMain.m
clc;clear;
fid = fopen('lenai.raw');
temp= fread(fid, [256,256]);
LenaRaw=uint8(temp');
subplot(1,3,1)
Imshow(LenaRaw);
title('原始图像')
subplot(1,3,2)
Imshow(smoothingMedianFilter(LenaRaw,3));
title('自制函数,使用用3*3模板,中值滤波图像')
subplot(1,3,3)
Imshow(medfilt2(LenaRaw,[3,3]));
title('调用库函数medfilt2,使用3*3模板,中值滤波图像')
3.1.4 锐化滤波器
锐化处理关键目标是突出图像中细节或增强被模糊了细节,这种模糊不是因为错误操作,就是特殊图像获取方法固有影响。常见方法有两种即为微分法和模板匹配法。
其中微分法中梯度是图像处理常见一次微分方法,在灰度骤变区域,梯度值大,在灰度相同区域,梯度值小。在灰度级为常数区域,梯度为零;Laplacian算子是线性二次微分算子,和梯度算子一样,含有旋转不变性,从而满足不一样走向图像边界锐化要求。
而对于模板匹配法则是出去能够增强图像边缘外,还含有平滑噪声优点。
3.1.5 低通滤波器
一幅图像边缘,跳跃部分和颗粒噪声代表图像信号高频分量,而大面积背景区域代表了图像信号低频分量。低通滤波器作用就是滤除这些高频分量,保留低频分量,使图像信号平滑。它包含:理想低通滤波器,巴特沃斯低通滤波器,指数低通滤波器等。
比如:频域增强
I=imread('apple.png');
>> J=imnoise(I,'salt & pepper',0.02);
>> subplot(121),imshow(J)
>> title('含噪声图像')
J=double(J);
>> f=fft2(J);
>> g=fftshift(f);
>> [M,N]=size(f);
>> n=3;d0=20;
>> n1=floor(M/2);n2=floor(N/2);
>> for i=1:M
for j=1:N
d=sqrt(i-n1)^2+((i-n2)^2);
h=1/(1+0.414*(d/d0)^(2*n));
g(i,j)=h*g(i,j);
end
end
g=ifftshift(g);
>> g=uint8(real(ifft2(g)));
>> subplot(122),imshow(g)
>> title('三阶Butterworth滤波图像')
3.1.6 高通滤波器
和低通滤波器相反,它将高频信号经过,而抑制了低频信号。
3.1.7 同态滤波器
把频率过滤和灰度变换结合起来图像处理方法叫同态滤波。
3.2 Matlab图像增强函数
Matlab中图像增强函数具体使用方法:
(1)直方图imhist函数用于数字图像直方图显示,如:
i=imread('e:\w11.tif');
imhist(a);
(2)直方图均化
histeq函数用于数字图像直方图均化,如:
i=imread('e:\w11.tif');
j=histeq(a);
(3)对比度调整
imadjust函数用于数字图像对比度调整,如:
i=imread('e:\w11.tif');
j=imadjust(a,[0.3,0.7],[]);
(4) 对数变换
log函数用于数字图像对数变换,如:
i=imread('e:\w11.tif');
j=double(a);
k=log(v);
(5)基于卷积图像滤波函数
filter2函数用于图像滤波,如:
i=imread('e:\w11.tif');
h=[1,2,1;0,0,0;-1,-2,-1];
j=filter2(h,i);
(6) 线性滤波
利用二维卷积conv2滤波, 如:
i=imread('e:\w11.tif');
h=[1,1,1;1,1,1;1,1,1];
h=h/9;
j=conv2(i,h);
(7)中值滤波
medfilt2函数用于图像中值滤波,如:
i=imread('e:\w11.tif');
j=medfilt2(i);
(8)锐化
·利用Sobel算子锐化图像, 如:
i=imread('e:\w11.tif');
h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子
j=filter2(h,i);
3.3 Matlab应用于数字图像增强和滤波
3.3.1 目标
1)熟悉灰度图像读入函数imread和图像显示函数imshow。
2)掌握数据类型强制转换函数y=double(x)。(注意进行运算前类型为uint8数据必需转换为double类型)。
3)掌握使用函数映射增强图像方法。
4)熟悉使用imhist函数显示图像直方图。
5)熟悉使用histeq函数进行直方图均衡化,经过试验结果了解直方图均衡化作用。
6)掌握加噪函数imnoise函数。
7)熟悉常见空域平滑滤波和锐化滤波模板。
3.3.2 内容
依据简单函数映射规则编写程序experiment.m,完成图像求反、增强对比度、降低对比度。
1)在MATLAB中读入名为lena.bmp图像给矩阵D,将D强制类型转换为double。
2)对原始图像求反,即转换为黑色或白色,形成底片效果,结果赋值给矩阵D1。
要求原图像灰度范围0~255,求反后灰度改变范围255~0。
3)对原始图像D降低对比度,结果赋值给矩阵D2。要求原图像灰度范围0~255,降低对比度后灰度改变范围0~127。
4)对降低对比度后图像D2增强对比度, 结果赋值给矩阵D3,要求和原始图像外观类似。
5)在figure(1)中显示求反图像、增强对比度图像和降低对比度图像图像和直方图,并添加标注说明。
6)对降低对比度后图像矩阵D2使用histeq函数进行直方图均衡化,结果赋值给矩阵D4。在figure No.2显示降低对比度后图像和直方图均衡化后图像,并添加标注说明。
Dimread('lena.bmp');
Ddouble(D/255;
D=1-D
D=(floor(D255/2)/255);
D=(exp(D*255/10))/255;
figure,subplot(4,2,1),imshow(D
title('原图像');
subplot(4,2,2),imhist(D);
title('原图像直方图');
subplot(4,2,3),imshow(D1);
title('求反图像');
subplot(4,2,4),imhist(D2);
title('求反图像直方图');
subplot(4,2,5),imshow(D3);
title('增强对比度图像');
subplot(4,2,6),imhist(D4);
title('增强对比度图像直方图');
subplot(4,2,7),imshow(D4);
title('降低对比度图像');
subplot(4,2,8),imhist(D3)
title('降低对比度图像直方图');
figure,subplot(1,2,1),imshow(D2);
title('降低对比度图像');
subplot(1,2,2),imshow(D4);
title('直方图均衡化图像');
以下将全部代码写成名为imfil.m脚本文件,存盘。在command window 中运行。
1)在MATLAB中读入名为eight.tif图像给矩阵X,将X强制类型转换为double,最大值归一化并显示X。
2)使用imnoise函数对图像矩阵X加噪,加噪后图像矩阵名为J。要求噪声为零均值,方差0.005高斯噪声。
3)使用以上给出平滑滤波模板和conv2函数对加噪图像进行平滑滤波即降噪,输出图像Y1并显示。
4)使用以上给出锐化滤波模板和conv2函数对图像X进行锐化滤波即边缘增强,输出图像Y2并显示。
5)在一个图形窗口中建立2×2子窗口,分别显示原始图像X,加噪图像J,降噪后图像Y1和边缘增强图像Y2。
X=imread('eight.tif');
Y=double(X);
x=(255-Y)./255;
J=imnoise(x,'gaussian',0,0.005);
d1=0.1.*[1,1,1;1,2,1;1,1,1];
Y1=conv2(J,d1,'same');
d2=[0,-1,0;-1,5,-1;0,-1,0];
Y2=conv2(Y,d2,'same');
subplot(2,2,1),imshow(X);title('原图象');
subplot(2,2,2),imshow(J);title('加噪图象');
subplot(2,2,3),imshow(Y1);title('降噪后图象');
subplot(2,2,4),imshow(Y2/max(max(Y2))+Y/255);title('边缘增强图象');
编写程序specfil.m,完成理想滤波器对一幅图像低通、高通滤波,比较并分析结果。
1)在MATLAB中读入名为lena.bmp图像给矩阵X,将X强制类型转换为double。
2)用cheby1分别设计低通和高通滤波器并对原始图像X进行滤波,低通滤波后图像为X1,高通滤波后图像为X2。
3)在Figure NO 1中开设1*3个子窗口显示原始图像X、低通滤波后图像X1和高通滤波后图像X2。
编写函数[f2,f3]=photo(ut),图像文件名为lena256.bmp,第ut行为破损行,即令该行值全为255,文件存为lena2.bmp,编写程序进行估计修补,文件保留为lena3.bmp。
其中图像文件读入函数为imread,写出函数为imwrite,无符号8位整型数转换为双精度类型函数为double,其逆运算函数为uint8。
3.4 试验
试验一:图像输入
对于一副黑白数字图像,其每一副数字图像全部是由一个矩阵组成,矩阵中每一个值全部是对应原来模拟图像对应值量化值,所以,一副黑白图像就是一个相关像素值矩阵。
使用MATLAB进行图像输入,能够利用以下简单一步:
f=imread(‘文件名.格式名’);
Figure;
Imshow(‘f’);
依据数字图像特征,f即为相关输入图象各像素值矩阵。
试验二:彩色图像处理
相关数字彩色图像编码,采取RGB三个矩阵进行存放,所以对于输入彩色图像相关RGB三个矩阵,我们只取其中灰度矩阵进行处理,这么就是对彩色图像简单灰化。
f=imread(‘文件名.格式名’);
Figure;
Imshow(‘f’);title(‘原图像’)
f1=f(:;:;3)%取彩色图像灰度分量。
Figure;
Imshow(f1);
Title(‘原图像’);
比如输入彩色图像为:
图3-1 彩色图像输入(a) 图3-2 灰化以后图像(b)
试验三:图像增强
试验题目:图像增强
试验目标:
(1)了解图像增强内容和意义;
(2)掌握基于空域图像增强方法;
(3)掌握基于频域图像增强方法。
试验内容:
(1)综合利用直方图均衡、灰度变换、锐化空域滤波等方法编程实现对图像空域增强处理;
(2)编程实现图像频域增强处理。
预备知识:
(1)熟悉MATLAB图像输入输出操作;
(2)熟悉图像模板操作;
(3)熟悉图像频域变换处理;
试验原理:
图像增强是对图像进行加工,以得到视觉效果愈加好或更有用新图像。
图像均衡化
f=imread('Couple.bmp');
J=histeq(f);
subplot(2,2,1);
imshow(f);
title('原图像');
subplot(2,2,2);
imhist(f);
title('原图直方图');
subplot(2,2,3);
imshow(J);
title('均衡化结果');
subplot(2,2,4);
imhist(J);
title('均衡化结果直方图');
图3-3
试验四:图像平滑和滤波
试验题目:图像平滑和滤波
试验目标:
在熟悉图像平滑基础原理和方法基础上,在理论指导下,能在MATLAB
展开阅读全文