1、3.2.2 直方图变换增强灰度直方图是灰度值的函数,灰度直方图是灰度值的函数,它描述了图像中各灰度值的它描述了图像中各灰度值的像素个数。像素个数。通常用通常用横坐标横坐标表示像素的表示像素的灰灰度级别度级别,纵坐标纵坐标表示对应的表示对应的灰度级出现的灰度级出现的频率频率(像素的(像素的个数)。个数)。灰度直方图5,4,5,6,2,14h 不同的图像具有相同直方图不同的图像具有相同直方图常用的直方图是规格化和离散化的,即纵坐标用相对值表示。设图像总像素为N,某一级灰度像素数为nk,则直方图表示为:p(rk)=nk/N 灰度直方图反映了一幅图像的灰度分布情况。(a)大多数像素灰度值取在较暗区域,
2、图像会较暗.一般在摄影过程中曝光过弱就会造成这种结果。(b)大多数像素灰度值集中在亮区,图像将偏亮.一般在摄影中曝光太强将导致这种结果。(c)图像的像素窄而集中,对比度低。从三幅图像的灰度分布来看图像的质量均不理想。注意高对比度的图像有更平坦的直方图。一一幅图像应该利用全部或几乎幅图像应该利用全部或几乎全部可能的灰度级全部可能的灰度级灰度直方图的又一应用灰度直方图的又一应用 分割阈值选取分割阈值选取假设某图像的灰度直方图具有假设某图像的灰度直方图具有 二峰性二峰性,则表明,则表明这个图像较亮的区域和较暗的区域可以较好地这个图像较亮的区域和较暗的区域可以较好地分离。分离。取二峰间的谷点为阈值点,
3、可以得到好的取二峰间的谷点为阈值点,可以得到好的二值二值处理处理的效果。的效果。具有二峰性的灰度图的二值化具有二峰性的灰度图的二值化1.直方图均衡化1)目的 将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。图像均衡化处理后,图像的直方图是平直的,即各灰度级具有相似的出现频数,那么由于灰度级具有均匀的概率分布,图像看起来就更清晰了。(2)直方图均衡化直方图均衡直方图均衡方法的基本思想方法的基本思想是,对在图像中像素个数多是,对在图像中像素个数多的灰度级进行展宽,而对像的灰度级进行展宽,而对像素个数少的灰度级进行缩减。
4、素个数少的灰度级进行缩减。从而达到清晰图像的目的。从而达到清晰图像的目的。直方图均衡化 s=T(r)r代表原始图像的灰度级,s为变换后的灰度级。通过上述变换,每个原始图像的像素灰度值r都对应产生一个s值。连续灰度的直方图非均匀分布连续灰度的直方图均匀分布直方图均衡化目标直方图均衡化 要找到一种变换要找到一种变换 S S=T T(r r)使直方图变使直方图变平直,为使变换后的灰度仍保持从黑到白的平直,为使变换后的灰度仍保持从黑到白的单一变化顺序,且变换范围与原先一致,以单一变化顺序,且变换范围与原先一致,以避免整体变亮或变暗。必须规定:避免整体变亮或变暗。必须规定:(1 1)在)在00r r11
5、中,中,T T(r r)是单调递增是单调递增函数,且函数,且00T T(r r)1)1;(2 2)反变换反变换r r=T T-1-1(s s),),T T-1-1(s s)也为单也为单调递增函数,调递增函数,00s s11。直方图均衡化 考虑到灰度变换不影响象素的位置分布,也不会增减像素数目。所以有)(1)()(000rTsdsdsspdrrprssrdrrprT0)()(直方图均衡化 应用到离散灰度级,设一幅图像的象素总数为n,分L个灰度级。第k个灰度级出现的频数。第k个灰度级出现的概率 其中0rk1,k=0,1,2,.,L-1 形式为:kjkjjjkknnrprTs00)()(直方图均衡化
6、的步骤直方图均衡化的步骤1、计算每个灰度级的像素个数在整个图像中所占的概率(百分比)2、计算图像各灰度级的累计分布概率1,.,1,0,10,)Pr(lkrnnrkkkkjjkjjrkknnrPrTs00)()(1,.,1,0,10lkrk直方图均衡化的步骤3、根据 的值判断变换后的灰度值 设图像的灰度级只有8级,因此需用1/7为量化单位进行舍入运算,得到如下结果:ksks的值落到的哪个区间,则对应变换到该灰度值例例例:设图像有例:设图像有6464*64=409664=4096个象素,有个象素,有8 8个灰度级,灰度个灰度级,灰度分布如表所示分布如表所示。进行进行直直方图均衡化方图均衡化。rkr
7、0=0r1=1/7r2=2/7r3=3/7r4=4/7r5=5/7r6=6/7r7=1 nk 790102385065632924512281p(rk)例例例:设图像有例:设图像有6464*64=409664=4096个象素,有个象素,有8 8个灰度级,灰度个灰度级,灰度分布如表所示分布如表所示。进行进行直直方图均衡化方图均衡化。rkr0=0r1=1/7r2=2/7r3=3/7r4=4/7r5=5/7r6=6/7r7=1 nk 790102385065632924512281p(rk)0.190.250.210.160.080.060.030.021.1.由(由(2-22-2)式计算)式计算s
8、 sk k。rkr0=0r1=1/7r2=2/7r3=3/7r4=4/7r5=5/7r6=6/7r7=1 nk 790102385065632924512281p(rk)0.190.250.210.160.080.060.030.02sk计算计算 0.190.440.650.810.890.950.981.00例例步骤:步骤:rkr0=0r1=1/7r2=2/7r3=3/7r4=4/7r5=5/7r6=6/7r7=1 nk 790102385065632924512281p(rk)0.190.250.210.160.080.060.030.02sk计算计算 0.190.440.650.810.
9、890.950.981.00sk舍入舍入 1/73/75/76/76/71112.2.把计算的把计算的s sk k就近安排到就近安排到8 8个个灰度级中。灰度级中。例例rkr0=0r1=1/7r2=2/7r3=3/7r4=4/7r5=5/7r6=6/7r7=1 nk 790102385065632924512281p(rk)0.190.250.210.160.080.060.030.02sk计算计算 0.190.440.650.810.890.950.981.00sk舍入舍入 1/73/75/76/76/7111sk nsk 7901023850985448p(sk)0.190.250.210
10、.240.113.3.重新命名重新命名s sk k,归并相同灰度归并相同灰度级的象素数。级的象素数。例例均衡化前后直方图比较例例均衡化直方图均衡化效果示例直方图规定化直方图均衡化存在的问题直方图均衡化的优点是得到近似均匀分布的直方图。但由于变换函数采用累积分布函数,只能产生近似均匀的直方图的结果实际应用中,有时需要具有特定直方图的图像,以便能够有目的地对图像中的某些灰度级分布范围内的图像加以增强。例:图像均衡化效果原图像均衡化后的图像直方图规定化的思想直方图规定化方法是使原图像灰度直方图变成规定形状的直方图而对图像作修正的增强方法。Matlab函数imhist(f,n)函数:计算和显示图像的直
11、方图。n为指定的灰度级数目,缺省值为256。g=histeq(f,nlev)%f为输入图像,nlev是输出图像的灰度级数,默认值为64,通常我们设置为256。g=histeq(f,hspec)%f为输入图像,hspec为指定的直方图(一个由指定值构成的行向量)。3.2.3 3.2.3 空间平滑滤波增强空间平滑滤波增强 图像在传输过程中,由于传输信道、采样系统质量较差,或受各种干扰等影响,会造成图像毛糙,此时,就需对图像进行平滑处理。图像平滑的作用类似剃须刀平滑可以去除毛糙,噪声,但也使图像变得模糊。1.邻域平均法:线性滤波 (均值滤波)2.中值滤波:非线性滤波 假设图像由许多灰度恒定的小块组成
12、,相邻像素间存在很高的空间相关性,而噪声则相对独立。可以将一个像素及其邻域内的所有像素的平均灰度值赋给平滑图像中对应的像素,从而达到平滑的目的。(常用的邻域有4-邻域和8-邻域)作用:减噪,去除不相干的细节,对灰度级不足引起的伪轮廓进行平滑等等。1.1.邻域平均法邻域平均法1.1.邻域平均法邻域平均法-非加权邻域平均非加权邻域平均最简单的邻域平均法为非加权邻域平均:一幅图像大小为NN的图像f(x,y),用邻域平均法得到的平滑图像为g(x,y),则 x,y=0,1,N-1;s为(x,y)邻域中像素坐标的集合,其中不包括(x,y);M表示集合s内像素的总数。sjijifMyxg,),(1),(3.
13、2.3 空间平滑滤波增强非加权邻域平均像素相邻:四连接:当前像素为黑,其四个近邻像素中至少有一个为黑;八连接:当前像素为黑,其八个近邻像素中至少有一个为黑。四四近近邻邻八八近邻近邻3.2.3 空间平滑滤波增强非加权邻域平均在图像上,对待处理的像素给定一个模板,该模板包括了其周围的邻近像素。将模板中的全体像素的均值来替代原来的像素值的方法。1.1.邻域平均法邻域平均法-非加权邻域平均非加权邻域平均 非加权邻域平均法可以用模板求得,即在待处理图像中逐点地移动模板,求模板系数与图像中相应像素的乘积之和,模板数为1。下图是非加权邻域平均33模板。91 1091 1 11 1 11 1 1H 非加权邻域
14、平均33模板:12143122345768957688567891214312234576895768856789344456678原图像处理后的图像非加权邻域非加权邻域均值滤波器 处理方法待处理像素待处理像素3.2.3 空间平滑滤波增强非加权邻域平均12143122345768957688567891091 1 11 1 11 1 1H1111111111214312234576895768856789边界处理:边界处理:3.2.3 空间平滑滤波增强非加权邻域平均12143122345768957688567890000000012143001223400576890057689005678
15、9000000001121433112143311223445576899557689955678995567899边界处理:边界处理:(a)为含有随机噪声的灰度图像 (b)(c)(d)是分别用33、55、77模板得到的平滑图像。均值滤波器的缺点是,会使图像变的模糊,原均值滤波器的缺点是,会使图像变的模糊,原因是它对所有的点都是同等对待,在将噪声点因是它对所有的点都是同等对待,在将噪声点分摊的同时,将景物的边界点也分摊了。分摊的同时,将景物的边界点也分摊了。为了改善效果,就可采用加权平均的方式来构为了改善效果,就可采用加权平均的方式来构造滤波器。造滤波器。1.1.邻域平均法邻域平均法-加权邻域
16、平均加权邻域平均3.2.3 空间平滑滤波增强加权邻域平均所有模板系数可以有不同的权值(p61)3.2.3 空间平滑滤波增强加权邻域平均1111211111011H1212421211612H111101111813H0010041414141214Hn 下面几个典型的加权平均滤波器。下面几个典型的加权平均滤波器。邻域平均法虽然可以平滑图像,但在消除噪声的同时,会使图像中的一些细节变得模糊。中值滤波则在消除噪声的同时还能保持图像中的细节部分,防止边缘模糊。2.2.中值滤波中值滤波中值滤波方法对脉冲干扰和椒盐噪声的抑制效果好,在抑制随机噪声的同时能够保持边缘减少模糊。中值滤波器 设计思想因为噪声(
17、如椒盐噪声)的出现,使该点像素比因为噪声(如椒盐噪声)的出现,使该点像素比周围的像素亮(暗)许多。周围的像素亮(暗)许多。如果在某个模板中,对像素进行由小到大排列的如果在某个模板中,对像素进行由小到大排列的重新排列,那么最亮的或者是最暗的点一定被排重新排列,那么最亮的或者是最暗的点一定被排在两侧。在两侧。对于图像中的每个像素对于图像中的每个像素,先确定一个先确定一个奇数像素窗口奇数像素窗口W,窗口内各像素按灰度值从小到大排序后,用,窗口内各像素按灰度值从小到大排序后,用中间位置灰度值代替原灰度值中间位置灰度值代替原灰度值,就可以达到滤除就可以达到滤除噪声的目的。噪声的目的。中值滤波器 例题12
18、143122345768957688567891214312234576895768856789234566678(a)为含有随机噪声的灰度图像 (b)(c)(d)是分别用33、55、77模板得到的平滑图像。可以看出,中值滤波的效果优于均值滤可以看出,中值滤波的效果优于均值滤波的效果,图像中的边缘轮廓比较清晰波的效果,图像中的边缘轮廓比较清晰中值滤波器与均值滤波器的比较对于对于椒盐噪声椒盐噪声,中值滤波效果比均,中值滤波效果比均值滤波效果好。值滤波效果好。中值滤波器与均值滤波器的比较原因:原因:椒盐噪声是幅值近似相等但随机分布在不椒盐噪声是幅值近似相等但随机分布在不同位置上,图像中同位置上,图
19、像中有干净点也有污染点有干净点也有污染点。中值滤波中值滤波是选择适当的点来替代污染点的是选择适当的点来替代污染点的值,所以处理效果好。值,所以处理效果好。因为噪声的均值不为因为噪声的均值不为0 0,所以,所以均值滤波均值滤波不能不能很好地去除噪声点。很好地去除噪声点。中值滤波器与均值滤波器的比较对于对于高斯噪声高斯噪声,均值滤波效果比中值,均值滤波效果比中值滤波效果好。滤波效果好。中值滤波器与均值滤波器的比较原因:原因:高斯噪声是幅值近似正态分布,但高斯噪声是幅值近似正态分布,但分布在每点分布在每点像像素上。素上。因为图像中的每点都是污染点,所以因为图像中的每点都是污染点,所以中值滤波中值滤波
20、选选不到合适的干净点。不到合适的干净点。因为正态分布的均值为因为正态分布的均值为0 0,所以,所以均值滤波均值滤波可以消除可以消除噪声。噪声。(注意:实际上只能减弱,不能消除。)注意:实际上只能减弱,不能消除。)Matlab函数g=imnoise(f,type,parameter)噪声生成返回对图像 f 添加典型噪声后的有噪图像 g,参数 type 和 parameter 用于确定噪声的类型和相应的参数。Type:常用的有gaussian(高斯噪声),salt&pepper(椒盐噪声)g=imnoise(f,”salt&pepper”,0.02)(发生概率)g=imnoise(f,”gauss
21、ian”,0,0.01)(均值和方差)线性滤波函数g=imfilter(f,w,filtering_mode,boundary_options,size_options)其中:f为输入图像,w为滤波掩模。w可通过fspecial函数生成。2、线性空间滤波器(线性模板形状)语法:w=fspecial(type,parameter)说明:其中type为模板类型,parameter为待定模板的相关参数,如:w=fspecial(average,5 5)表示一个5*5的方形模板非线性滤波器非线性空间滤波器语法:g=medfilt2(f,m n,padopt)说明:中值滤波器。f表示待处理的图像,m n表示模板的尺寸,padopt指定了三个可能的边界填充选项之一:zeros(默认值)。symmetric,镜像反射。indexed,double类图像,以1填充,否则以0填充。椒盐噪声示例高斯噪声示例