数字图像处理图像增强课件.pptx
4.1 4.1 图像增强概述图像增强概述 4.1.1 4.1.1 图像增强的定义图像增强的定义u对图像的某些特征,如u边缘u轮廓u对比度等u进行强调或锐化,以便于显示、观察或进一步分析与处理。u首要目标首要目标:u处理图像,使其比原始图像更适合于特定应用。u增强的方法是因应用不同而不同的。u图像增强方法只能有选择地使用。u增强的结果u基本靠人的主观感觉加以评价。4.1.2 图像增强研究的内容 图像增强空间域点运算区域运算灰度变换直方图修正法彩色变换增强伪彩色增强假彩色增强同态滤波增强低通滤波高通滤波频率域彩色增强代数运算平滑锐化图4.1 图像增强的内容 4.2 空间域单点增强点运算点运算像素值通过运算改变之后,可以改善图像的显示效果。这是一种像素的逐点运算。点运算与相邻的像素之间无运算关系是旧图像与新图像之间的映射关系。n对于一幅输入图像,经过点运算将产生一幅输出图像。n输出图像上每个像素的灰度值仅由相应输入像素的灰度值决定,而与像素点所在的位置无关。n典型的点运算:n对比度增强、对比度拉伸或灰度变换。4.2.1 4.2.1 灰度级校正灰度级校正 p 在成像过程中,如p光照的强弱、感光部件的灵敏度、光学系统的不均匀性、元器件特性的不稳定等均可引起图像亮度分布的不均匀。p灰度级校正p在图像采集系统中对图像像素进行逐点修正,使得整幅图像能够均匀成像。u 设理想真实的图像为 ,实际获得的含噪声的图像为 ,则有(4.1)u 是使理想图像发生畸变的比例因子。u知道了 ,就可以求出不失真图像。u标定系统失真系数的方法u采用一幅灰度级为常数C的图像成像,若经成像系统的实际输出为 ,则有(4.2)l可得比例因子:l可得实际图像g(i,j)经校正后所恢复的原始图像 l乘了一个系数C/gc(i,j),校正后可能出现“溢出”现象l灰度级值可能超过某些记录器件或显示设备输入信号的动态可能范围l需再作适当的灰度变换,最后对变换后的图像进行量化。(4.3)(4.4)4.2.2 灰度变换灰度变换n灰度变换n可使图像动态范围增大,图像对比度扩展n从而使图像变得清晰以及图像上的特征变得明显。1线性变换线性变换n设原图像f(i,j)的灰度范围为a,bn线性变换后图像g(i,j)的范围为a,b。f(i,j)g(i,j)a b图4.2 线性变换g(i,j)与f(i,j)之间的关系为:分段线性变换目的:突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区间。常用的是三段线性变换。(4.5)abfcdgab图4.3 三段线性l对灰度区间a,b进行了线性拉伸,而灰度区间0,a和b,Mf则被压缩。l仔细调整折线拐点的位置及控制分段直线的斜率,可以对图像的任一灰度区间进行拉伸或压缩。【例例4.1】在MATLAB环境中,采用图像线性变换进行图像增强。应用MATLAB的函数imadjust将图像0.32550.7255灰度之间的值通过线性变换映射到0255之间。解:分别取:a0.3255,b0.7255,a=0,b=255。A=imread(pout.tif);%读入图像imshow(A);%显示图像figure,imhist(A);%显示图像的直方图J1=imadjust(A,0.3 0.7,);%函数将图像在0.3*2550.7*255灰度之间的值通过线性变换映射到0255之间figure,imshow(J1);%输出图像效果图figure,imhist(J1)%输出图像的直方图 实现的程序:实现的程序:(a)原图 (b)原图的直方图 (c)输出图像 (d)输出图像的直方图 图4.4 图像线性变换2 2非线性灰度变换非线性灰度变换l 当用某些非线性函数如对数、指数函数等作为映射函数时,可实现灰度的非线性变换。l 对数变换的一般表达式为:(4.7)l对数变换可以增强低灰度级的像素,压制高灰度级的像素,使灰度分布与视觉特性相匹配。直方图(图4.5):指图像中各种不同灰度级像素出现的相对频率。灰度级 相对频率4.2.3 灰度直方图变换灰度直方图变换l灰度直方图描述了图像的概貌。l直方图变换后可使图像的灰度间距拉开或使灰度分布均匀,从而增大对比度,使图像细节清晰,达到增强的目的。l直方图变换有l直方图均衡化及直方图规定化两类。l直方图均衡化直方图均衡化l通过对原图像进行某种变换,使得图像的直方图变为均匀分布的直方图。l灰度级连续的灰度图像:当变换函数是原图像直方图累积分布函数时,能达到直方图均衡化的目的。l对于离散的图像,用频率来代替概率。【例例4.2】假定有一幅总像素为n6464的图像,灰度级数为8,各灰度级分布列于表4.1中。试对其进行直方图均衡化。k01234567rk01/72/73/74/75/76/71nk790102385065632924512281pr(rk)0.190.250.210.160.080.060.030.020.190.440.650.810.890.950.9811/73/75/76/76/71111/73/75/76/717901023850985448pr(sk)0.190.250.210.240.11表4.1 一幅图像的灰度级分布 解解:(1)求变换函数 类似地计算出(2)计算)计算l输出图像灰度是等间隔的,且与原图像灰度范围一样取8个等级,即要求最终的值sk=k/7,k=1,2,7。l需要对 进行重新量化后加以修正:(3)的确定的确定u 由 可知,输出灰度级仅为5个级别:(4)计算对应每个)计算对应每个 的的 u 因为 映射到 ,所以有790个像素在输出输出图像上变成u 映射到 ,所以有1023个像素取值 。映射到 ,因此有850个像素取值 。u因为 和 都映射到 ,因此有656+329985个像素取值 。同理有245+122+81488个像素变换 。(5)计算)计算 【例例4.3】在MATLAB环境中,采用直方图均衡的方法进行图像增强。解解:程序如下 A=imread(1.bmp);I=histeq(A);%调用函数完成直方图均衡化subplot(1,2,1),imshow(A);%直方图均衡化前的图像效果subplot(1,2,2),imshow(I);%直方图均衡化后的图像效果figure,subplot(1,2,1),imhist(A);%均衡化前的直方图subplot(1,2,2),imhist(I);%均衡化后的直方图4.3 4.3 平滑平滑 l 一种区域增强的算法,平滑算法有:l邻域平均法,中值滤波和边界保持类滤波等。4.3.1 4.3.1 邻域平均法邻域平均法n大部分的噪声都可以看作是随机信号,对图像的影响可以看作是孤立的。n某一像素,如果它与周围像素点相比,有明显的不同,则该点被噪声感染了。n 设当前待处理像素为f(m,n),给出一个大小为33的处理模板。图4.7 模板示意图 l处理后的图像设为 ,则处理过程可描述为 l其中Z=-1,0,1,为门限,它可以根据对误差容许的程度,选为图像灰度均方差的 若干倍,或者通过实验得到。u也可以把平均处理看作是图像通过一个低通空间滤波器后的结果u设该滤波器的冲激响应为H(r,s),于是滤波器输出的结果g(m,n)表示成卷积的形式,即u k,l决定了所选邻域的大小,为加权函数,又被称为掩模(Mask)或模板(4.8)常用的模板:I1=imread(blood1.tif);I=imnoise(I1,salt&pepper);%对图像加椒盐噪声imshow(I);h1=0.1 0.1 0.1;0.1 0.2 0.1;0.1 0.1 0.1;%定义4种模板h2=1/16.*1 2 1;2 4 2;1 2 1;h3=1/8.*1 1 1;1 0 1;1 1 1;h4=1/2.*0 1/4 0;1/4 1 1/4;0 1/4 0;I2=filter2(h1,I);%用4种模板进行滤波处理I3=filter2(h2,I);I4=filter2(h3,I);I5=filter2(h4,I);figure,imshow(I2,)%显示处理结果figure,imshow(I3,)figure,imshow(I4,)figure,imshow(I5,)【例例4.44.4】分别采用4种模板对图像进行处理。(a)有噪声的图像 (b)模板1处理的结果图 (c)模板2处理的结果图(d)模板3处理的结果图 (e)模板4处理的结果图图4.8 平滑处理的例子 l邻域平均法:在去噪的同时也使边界变得模糊了。l中值滤波:非线性的处理方法,在去噪的同时可以兼顾到边界信息的保留。l选一个含有奇数点的窗口W,将这个窗口在图像上扫描,把该窗口中所含的像素点按灰度级的升(或降)序排列,取位于中间的灰度值,来代替该点的灰度值。(4.9)4.3.2 4.3.2 中值滤波中值滤波 例:例:选择滤波用的窗口W如图,是一个一维的窗口,待处理像素的灰度取这个模板中灰度的中值,滤波过程为:图4.9 一维窗口 u 常用的窗口还有方形、十字形、圆形和环形等。图4.10 中值滤波的常用窗口u中值滤波对于消除孤立点和线段的干扰十分有用。u特别是对于二进噪声尤为有效,对于消除高斯噪声的影响效果不佳。u对于一些细节较多的复杂图像,还可以多次使用不同的中值滤波,然后通过适当的方式综合所得的结果作为输出,这样可以获得更好的平滑和保护边缘的效果。I1=imread(blood1.tif);I=imnoise(I1,salt&pepper,0.02);imshow(I);K=medfilt2(I);%中值滤波figure,imshow(K);【例例4.5】选用33的窗口进行中值滤波。(a)原图 (b)结果图图4.11 中值滤波 1.K近旁均值滤波器近旁均值滤波器l在mm的窗口中,属于同一集合类的像素,它们的灰度值将高度相关。l被处理的像素(对应于窗口中心的像素)可以用窗口内与中心像素灰度最接近的k个邻近像素的平均灰度来代替。(1)作一个mm的作用模板。(2)在其中选择K个与待处理像素的灰度差为最小的像素。(3)用这K个像素的灰度均值替换掉原来的值。4.3.3 4.3.3 边界保持类滤波边界保持类滤波u模板为33,k3的K近旁均值滤波器。图4.12 K近旁均值滤波器u在K近旁均值滤波器中,不选k个邻近像素的平均灰度来代替,而选k个邻近像素的中值灰度来代替。图4.13 K近旁中值滤波器 2.K近旁中值滤波器近旁中值滤波器l对图像上待处理的像素(m,n)选它的55邻域。l在此邻域中采用图4.14所示的模板。l计算各个模板的均值和方差,按方差排序,最小方差所对应的模板的灰度均值就是像素(m,n)的输出值。3.最小均方差滤波器最小均方差滤波器图4.14 最小均方差滤波器模板l计算步骤如下:(1)按图做出9个模板,计算出各自的方差。(2)选出方差为最小的模板。(3)用该模板的灰度均值代替原像素的灰度值。其中 是指对应的模板,N是模板中像素的数量。l以方差作为各个邻域灰度均匀性的测度。l若邻域含有尖锐的边缘,灰度方差必定很大,而不含边缘或灰度均匀的邻域,方差就很小,那么最小方差所对应的邻域就是灰度最均匀邻域。l通过这样的平滑既可以消除噪声,又能够不破坏邻域边界的细节。(4.9)均值和方差公式:4.4 4.4 锐化锐化l基本思想:l根据需要,某些情况下图像中景物的边缘和轮廓应该得到加强。l边缘和轮廓常常位于图像中灰度突变的地方,因而可以直观的想到用灰度的差分对边缘和轮廓进行提取。l梯度向量的幅度:(4.10)(4.11)4.4.1 4.4.1 梯度锐化法梯度锐化法l二元函数f(x,y)在坐标点(x,y)处的梯度定义为n数字微分将用差分代替:(4.12)(4.13)(4.14)(4.15)l为了降低运算量,常用绝对值或最大值运算代替平方与平方根运算近似求梯度的幅度:图4.15 沿x和y方向的一阶差分 图4.16 罗伯茨差分 l所有梯度值都和相邻像素之间的灰度差分成比例。因此可以利用它来增强图像中景物的边界。l采用梯度进行图像增强的方法有:第一种方法:使其输出图像的各点等于该点处的梯度。即 (4.16)u缺点:输出的图像在灰度变化比较小的区域,g(i,j)很小,显示的是一片黑色。第二种方法第二种方法:对梯度值超过某阈值T的像素选用梯度值,而小于T时选用原像素点值。u 适当的选取T,可以有效地增强边界而不影响比较平滑的背景。(4.17)l第三种方法:第三种方法:对梯度值超过T的像素选用固定灰度LG 代替,而小于T时仍选用原像素点值l这种方法可以使边界清晰,同时又不损害灰度变化比较平缓区域的图像特性。(4.18)第四种方法:第四种方法:将梯度值超过T的像素选用梯度值,而小于T时选用固定的灰度LB。即 l 这种方法将背景用一个固定的灰度级LB来表示,便于研究边缘灰度的变化。(4.19)第五种方法:第五种方法:是将梯度值超过某阈值T的像素选用固定灰度LG,而小于该阈值T时选用固定的灰度LB。u该法生成的是二值图,根据阈值将图像分成边缘和背景,便于研究边缘所在的位置。(4.20)【例例4.54.5】利用罗伯茨梯度对图像进行锐化处理。解解:程序如下:I=imread(rice.tif);imshow(I);BW1=edge(I,roberts,0.1);figure,imshow(BW1);(a)原图像 (b)结果图图4.17 罗伯茨梯度的锐化 除一阶微分外,还可以选用二阶微分算子。l一个连续的二元函数f(x,y),其拉普拉斯运算定义为 l对于数字图像,拉普拉斯算子可以简化为(4.21)4.4.2 4.4.2 拉普拉斯算子(拉普拉斯算子(LaplacianLaplacian)(4.22)也可以表示为卷积的形式,即其中,k1,l1,取下式(4.23)l拉普拉斯的增强算子:其对应的模板为:(4.24)【例例4.64.6】应用拉普拉斯算子进行图像锐化处理。解解:程序如下 I=imread(2.gif);imshow(I);h=0-1 0;-1 4-1;0-1 0;I2=imfilter(I,h);figure,imshow(I2);(a)原图像 (b)结果图图4.18 拉普拉斯算子的锐化 4.4.3 4.4.3 高通滤波高通滤波常用的高通模板有:4.4.4 4.4.4 其他锐化算子其他锐化算子1.Sobel算子算子(4.25)用模板来表示:2.Prewitt算子算子用模板表示 :3.Isotropic算子算子用模板表示 :【例例4.7】利用Sobel算子和Prewitt算子对图像进行锐化处理。I=imread(ric.tif);imshow(I);hs=fspecial(sobel);S=imfilter(I,hs);hp=fspecial(prewitt)P=imfilter(I,hp);figure,imshow(S,);figure,imshow(P,);(a)Sobel算子 (b)Prewitt算子图4.19 锐化结果