您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > laplace(拉普拉斯)锐化matlab程序
第二次作业201321050326程小龙习题:4.8答:参考教材4.4-1式,高通滤波器可以看成是1减去相应低通滤波器,从低通滤波器的性质可以看出,在空间域上低通滤波器在原点是存在一个尖峰,且大于0,1是看成直流分量,因此,傅里叶逆变换之后的高通滤波器在空间域上原点就会出现负的尖峰。4.15答:(a)该问题给出了在x方向上的差分,同理给出y方向的差分,于是滤波方程在空间域上有如下表示:从教材4.6-2式可以得到:于是,传递函数如下:(b)为了证明上面的传递函数是一个高通滤波器,我们可以参考如下类似的滤波器的传递函数:方便起见,我们考虑一个变量。当u从0增加到M,H(u,v)从最大值2j(复数)然后减少,当u=M/2时(转移方程的中心)最小;当u继续增加,H(u,v)继续增加,且当u=M时,又取得最大值。同样,考虑两个变量也得到类似的结果。这种特性就是我们的高通滤波器,于是我们就可以得到我们推导出的滤波器H(u,v)是高通滤波器。4.16答:(a)解决这个问题的关键在于是将经过K次高通滤波后看作是1减去K次低通滤波器之后的结果,即:于是,当K逐渐增大时,这个滤波器将逐渐接近于陷波滤波器,并且去掉F(0,0)点,将会产生只有平均值为0的图像,所以,存在一个K值,使得经过K次高通滤波之后就会产生一副像素不变的图像。(b)决定K的取值可有下式可以得出:因为u,v都是整数,对于上式第二个条件只需要对于所以的u,v不全为0,我们希望滤波器对于所有的值都是能1,于是要求指数部分对于所以u,v不全为0的地方滤波效果接近于0,也就是说此时的K就是我们所要的最小值𝐾𝑚𝑖𝑛。4.22答:(a)用0延拓图像即用0值填充来增加图像像素大小,但并不是其灰度容量拓展,因此,填充图像的平均灰度值就会低于原来的图像。也就是说,填充之后的F(0,0)将会比原来的图像的F(0,0)(F(0,0)代表相应图像的平均值)小,因此,我们看到的右图中的F(0,0)更低,同理其他地方也会比原来对应的地方灰度值小,并且覆盖一个很窄范围的值,所以右图中的整体对比度比原图低;(b)用0值填充的图像在源图像边界处引入了较大差异的不连续的值,这个过程突出了水平和垂直边界的地方,即图像在这些地方具有较大的像素落差,这些比较突出的变化导致了横轴和纵轴方向上的信号显著增加。课外编程任务:对一幅灰度图像,(1)计算并画出此图像的中心化频率谱。(2)分别用低通滤波和高通滤波对此图像进行频域处理。(2)用拉普拉斯算子对此图像锐化。1.matlab代码如下:clear;clc;Data=imread('C:\Users\Administrator\Desktop\ex.JPG');DataGray=rgb2gray(Data);figure(1),imshow(Data);title('原始图像');%**************计算并画出此图像的中心化频率谱*************Data1=double(DataGray);FFT2=fft2(Data1);FFTcenter=fftshift(FFT2);%频谱中心化FFT2abs=abs(FFT2);FFTresult=256*log2(FFT2abs/max(max(FFT2abs))+1);figure(2),subplot(1,2,1);imshow(FFTresult),title('原图频谱');FFTc_abs=abs(FFTcenter);FFTc_result=256*log2(FFTc_abs/max(max(FFTc_abs))+1);subplot(1,2,2);imshow(FFTc_result),title('中心化频谱');%*******分别用低通滤波和高通滤波对此图像进行频域处理****[m,n]=size(FFTcenter);x_center=round(m/2);y_center=round(n/2);d=10;%半径取10LF=FFTcenter;HF=FFTcenter;%**************低通滤波器*************fori=1:m;forj=1:ndistance=sqrt((i-x_center)^2+(j-y_center)^2);ifdistance=dflag=1;elseflag=0;endLF(i,j)=flag*FFTcenter(i,j);endend%逆变换转换成对应图像LF=uint8(real(ifft2(ifftshift(LF))));figure(3),subplot(1,2,1);imshow(LF);title('低通滤波后图像');%**************高通滤波器*************fori=1:m;forj=1:ndistance=sqrt((i-x_center)^2+(j-y_center)^2);ifdistancedflag=1;elseflag=0;endHF(i,j)=flag*FFTcenter(i,j);endendHF=uint8(real(ifft2(ifftshift(HF))));subplot(1,2,2),imshow(HF);title('高通滤波后图像');%*****************用拉普拉斯算子对此图像锐化*************Laplace=[0-10;-14-1;0-10];LaplaceImage=conv2(Data1,Laplace,'same');figure(4),subplot(1,2,1);imshow(uint8(LaplaceImage));title('Laplace图像');DataLap=imadd(Data1,immultiply(LaplaceImage,1));%原图像与拉普拉斯图像叠加subplot(1,2,2),imshow(uint8(DataLap));title('锐化增强后的图像');2.处理结果如下:可以从锐化增强后的图像中看出原图像中很多模糊的细节。
本文标题:laplace(拉普拉斯)锐化matlab程序
链接地址:https://www.777doc.com/doc-5110137 .html