第一章概述1.1图像锐化图像在传输和变换过程中会受到各种干扰而退化,比较典型的就是图像模糊。图像锐化的目的就是使边缘和轮廓线模糊的图像变得清晰,并使其细节清晰。锐化技术可以在空间域进行,常用的方法是对图像进行微分处理,也可以在频域中运用高通滤波技术处理。1.1.1图像模糊机理及处理方法图像模糊是常见的图像降质问题。在图像提取、传输及处理过程中有许多因素可以使图像变模糊。如光的衍射、聚焦不良、景物和取像装置的相对运动都会使图像变模糊,电子系统高频性能不好也会损失图像高频分量,而使图像不清晰。在对图像进行数字化时,实际取样点总是有一定的面积,所得的样本是这个具有一定面积的区域的亮度平均值,若取样点正好在边界上,则使样本值降低,从而使数字图像的边界变得不清楚。大量的研究表明,图像的模糊实质上就是受到了平均或积分运算,因此对其进行逆运算如微分运算、梯度运算,就可以使图像清晰。从频谱角度来分析,图像模糊的实质是其高频分量被衰减,因而可以用高频加重来使图像清晰。但要注意,能够进行锐化处理的图像必须要求有较高的信噪比,否则,图像锐化后,信噪比更低。因为锐化将使噪声受到比信号还强的增强,故必须小心处理。一般是先去除或减轻干扰噪声后,才能进行锐化处理。1.1.2常用的锐化处理方法常用的锐化处理方法有微分法和高通滤波法。微分法:从数学上看,图像模糊的实质就是图像受到平均或者积分运算,因此对其进行逆运算就可以使图像清晰,因为微分运算是求信号的变化率,有加强高频分量的作用,从而使图像轮廓清晰。由于图像模糊的特征(如边缘的走向等)各不相同,为了把图像中间任何方向伸展的边缘和轮廓的模糊变清晰,那么要采用各向同性的、具有旋转不变的线性微分算子来锐化它们,梯度算子和拉普拉斯算子就是满足要求的线性微分算子,它们是常用的图像锐化运算方法。高通滤波:图像中的边缘或线条等细节部分与图像频谱中的高频成分相对应,因此采用高通滤波的方法让高频分量顺利通过,使低频分量受到抑制,就可以增强高频的成分,是图像的边缘或线条变得清晰,实现图像的锐化。高通滤波可用空间域或频域法来实现。1.2图像平滑在图像的获取和传输过程中原始图像会受到各种噪声的干扰,使图像质量下降。为了抑制噪声、改善图像质量,要对图像进行平滑处理。抑制或消除这些噪声而改善图像质量的过程称为图像的平滑。图像平滑的目的是为了消除噪声。噪声消除的方法又可以分为空间域或频率域,亦可以分为全局处理或局部处理,亦可以按线性平滑、非线性平滑和自适应平滑来区别。图像的平滑是一种实用的数字图像处理技术,一个较好的平滑处理方法应该既能消除图像噪声,又不使图像边缘轮廓和线条变模糊,这就是研究数字图像平滑处理要追求的目标。一般情况下,减少噪声的方法可以在空间域或频率域进行处理,主要有邻域平均法、中值滤波法、低通滤波法等。1.2.1邻域平均邻域平均法是一种局部空间域处理的方法,就是对含有噪声的原始图像f(x,y)的每个像素点取一个邻域S,计算S中所有像素灰度级的平均值,作为空间域平均处理后图像g(x,y)的像素值,即snmnmfMyxg),(),(/1),(式中f(x,y)为N×N的阵列;x,y=0,1,2,…,N-1,;S是以(x,y)点为中心的邻域的集合,M为邻域S中的像素点数,S邻域可取四点邻域、八点邻域(如图1.1)。图1.1图像邻域平均法(a)四点邻域(b)八点邻域图像邻域平均法的平滑效果与所用的邻域半径有关。半径愈大,则图像的模糊程度越大。另外,图像邻域平均法算法简单,计算速度快,但是它的主要缺点是在降低噪声的同时使图像产生模糊,特别在边缘和细节处。邻域越大,模糊程度越厉害。1.2.2中值滤波中值滤波法是一种非线性平滑技术,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值。中值滤波是基于排序统计理论的一种能有效噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。方法是通过某种结构的二维滑动模板,将模板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)},其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。它的效果取决于两个要素:邻域的空间范围和中值计算中涉及的像素数(当空间范围较大时,一般只用某个稀疏矩阵做计算)。它的优点在于能够在抑制随机噪声的同时不使边缘模糊。但对于线、尖顶等细节多的图像不宜采用中值滤波。1.2.3低通滤波图像经过傅里叶变换以后,噪声频谱一般位于空间频率较高的区域,而图像本身的频率分量则处于空间频率较低的区域内,因此可以通过低通滤波的方法,使高频成分受到抑制,而使低频成分顺利通过,从而实现图像的平滑。低通滤波可以在空间域和频域中进行。(1)空间域低通滤波在空间域中实现低通滤波是采用离散卷积,与高通滤波所用卷积表达式相同,即为式中输出图像g(m1,m2)是M×M方阵,输入图像f(n1,n2)是N×N方阵,冲击响应H是L×L方阵。低通滤波与高通滤波不同的是冲击响应方阵H,下面列出几种用于平滑噪声的低通形式的算子列阵H:这些方阵都被归一化到单位加权,以免在处理过的图像中引起亮度出现偏置的现象。(2)频域低通滤波这是一种频域处理法。对于一幅图像,它的边缘、细节、跳跃部分以及噪声都代表图像的高频分量,而大面积的背景区和缓慢变化部分则代表图像的低频分量,用频域低通滤波法除去其高频分量就能去掉噪声,从而得到平滑。对下式利用卷积定理,即可得到在频域实现低通滤波的数学表达式:G(u,v)=H(u,v)F(u,v)上式中F(u,v)是含有噪声原始图像的傅里叶变换,G(u,v)是平滑后图像的傅里叶变换,H(u,v)是滤波器的转移函数(即频谱响应)。第二章图像平滑处理与调试2.1图像锐化MATLAB的实现(1)梯度法中5种图像锐化方法的MATLAB的实现下面给出的是梯度法图像锐化的MATLAB程序:clc;[I,map]=imread('6.jpg');figuresubplot(3,2,1),imshow(I,map);I=double(I);[IX,IY]=gradient(I);%计算梯度GM=sqrt(IX.*IX+IY.*IY);%注意是矩阵点乘OUT1=GM;%第一种图像增强subplot(3,2,2),imshow(OUT1,map);OUT2=I;%第二种图像增强J=find(GM=10);OUT2(J)=GM(J);subplot(3,2,3),imshow(OUT2,map);OUT3=I;%第三种图像增强J=find(GM=10);OUT3(J)=255;subplot(3,2,4),imshow(OUT3,map);OUT4=I;%第四种图像增强J=find(GM=10);OUT4(J)=255;subplot(3,2,5),imshow(OUT4,map);OUT5=I;%第五种图像增强J=find(GM=10);OUT5(J)=255;Q=find(GM=10);OUT5(Q)=0;subplot(3,2,6),imshow(OUT5,map);运行结果如图2.1所示。图2.1梯度法图像锐化示例(2)利用Sobel算子对图像锐化利用Sobel算子对图像6.jpg锐化的程序:I=imread('6.jpg')H=fspecial('sobel')subplot(1,2,1),imshow(I)J=filter2(H,I)subplot(1,2,2),imshow(J)运行结果如图2.2所示。图2.2Sobel算子对图像锐化结果(3)空域高通滤波法对图像进行增强下面是利用空域高通滤波法的H2、H3、H4几个方阵来做图像锐化的程序:I=imread('6.jpg');J=im2double(I);%转换图像矩阵为双精度型subplot(2,2,1),imshow(J,[])h2=[-1-1-1,-19-1,-1-1-1];h3=[1-21,-25-2,1-21];h4=1/7.*[-1-2-1,-219-2,-1-2-1];A=conv2(J,h2,'same');%进行二维卷积操作subplot(2,2,2),imshow(A,[])B=conv2(J,h3,'same');subplot(2,2,3),imshow(B,[])C=conv2(J,h4,'same');subplot(2,2,4),imshow(C,[])运行结果如图2.3所示。(a)(b)(c)(d)图2.3空域高通滤波法对图像进行锐化(a)原图像(b)H2算子(c)H3算子(d)H4算子(4)频域高通滤波法对图像进行增强下面给出各种频域高通滤波器对6.jpg图像增强的程序:clc;[I,map]=imread('6.jpg');noisy=imnoise(I,'gaussian',0.01);%原图中加入高斯噪声imshow(noisy,map);[MN]=size(I);F=fft2(noisy);fftshift(F);Dcut=100;D0=250;D1=150;foru=1:Mforv=1:ND(u,v)=sqrt(u^2+v^2);BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(Dcut/D(u,v))^2);EXPOTH(u,v)=exp(log(1/sqrt(2))*(Dcut/D(u,v))^2);ifD(u,v)D1THPFH(u,v)=0;elseifD(u,v)=D0THPFH(u,v)=(D(u,v)-D1)/(D0-D1);elseTHPFH(u,v)=1;endendendendBUTTERG=BUTTERH.*F;BUTTERfiltered=ifft2(BUTTERG);EXPOTG=EXPOTH.*F;EXPOTfiltered=ifft2(EXPOTG);THPFG=THPFH.*F;THPFfiltered=ifft2(THPFG);subplot(2,2,1),imshow(noisy)%显示加入高斯噪声的图像subplot(2,2,2),imshow(BUTTERfiltered)%显示经过巴特沃斯高通滤波器后的图像subplot(2,2,3),imshow(EXPOTfiltered)%显示经过指数高通滤波器后的图像subplot(2,2,4),imshow(THPFfiltered)%显示经过梯形通滤波器后的图像运行结果如图2.4所示。(a)(b)(b)(d)图2.4频域高通滤波法对图像进行锐化(a)加入高斯噪声后的图像(b)巴特沃斯高通滤波后的图像(c)指数高通滤波后的图像(d)梯形高通滤波后的图像2.2图像平滑处理MATLAB的实现(1)邻域平均在MATLAB图像处理工具箱中,提供了imfilter函数用于实现均值滤波,imfilter的语法格式为:B=imfilter(A,H)其功能是,用H模板对图像A进行均值滤波,取平均值滤波模版为H1=1/9[111;111;111]H2=1/25[11111;11111;11111;11111;11111]下面是利用邻域平均3*3模板对锐化后的图像进行平滑处理的程序:I=imread('6.jpg');J=im2double(I);subplot(2,2,1),imshow(J,[])title('原始图')h2=[-1-1-1,-19-1,-1-1-1];h3=[1-21,-25-2,1-21];h4=1/7.*[-1-2-1,-219-2,-1-2-1];A=conv2(J,h2,'same');subplot(2,2,2),imshow(A,[])title('h2锐化后的图像')B=conv2(J,h3,'same');subplot(2,2,3),imshow(B,