您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 实验二数字图像频域增强-研究生(1)
1实验二:数字图像频域增强实验指导书一、实验目的(1)了解离散傅立叶变换的基本原理及其性质;(2)掌握应用MATLAB语言进行FFT及逆变换的方法;(3)了解图象在频域中处理方法,应用MATLAB语言作简单的低通及高通滤波器。二、实验要求(1)读入数字图像,并利用MATLAB对其进行傅立叶变换,并显示其频谱图像;对该图像进行平移、旋转和放大(或缩小)操作,记录其频谱图像并分析。实验用图像自行选择。实验1数据记录可类似下表输入图像FFT变换频谱图像(2)读入数字图像,为该图像添加高斯以及椒盐噪声,利用巴特沃斯低通滤波器,高斯低通滤波器对一受噪声污染图像做处理,记录滤波后的频谱图像,再作反变换,记录处理后的新图像。设定不同截止频率参数,重复一次实验。(3)读入数字图像,设计实现巴特沃斯高通滤波器和高斯高通滤波器,记录滤波后的频谱图像,再作反变换,记录处理后的新图像。设定不同截止频率参数,重复一次实验。实验2,3数据记录可类似下表:输入图像滤波器截至频率处理后频谱图像反变换后图像三、提交作业要求内容包括:实验1~3记录的数据(格式见如上实验要求),对应的matlab代码,以及对实验过程和结果进行分析及总结。2参考MATLAB代码:clear;I1=imread('eight.tif');figure;subplot(2,2,1);imshow(I1);title('原始图像');I2=imnoise(I1,'salt&pepper');subplot(2,2,2);imshow(I2);title('噪声图像');f=double(I2);g=fft2(f);%执行fft变换g=fftshift(g);%移相[N1,N2]=size(g);n=5;d0=50;%截至频率n1=fix(N1/2);n2=fix(N2/2);fori=1:N1forj=1:N2d=sqrt((i-n1)^2+(j-n2)^2);h=1/(1+(d/d0)^(2*n));%d0即为截至频率result(i,j)=h*g(i,j);%相乘endendresult1=ifftshift(result);%反移相X2=ifft2(result1);%反变换X3=uint8(real(X2));figure();subplot(2,2,1);imshow(X3);title('巴特沃斯滤波器图像');subplot(2,2,2);result=log(0.000001+abs(result));imshow(result,[]),colorbar;title('巴特沃斯滤波函数');figure();subplot(2,2,1);g=log(0.000001+abs(g));imshow(g,[]),colorbar;title('原始图像的傅立叶变换');3实验原理1、傅立叶变换的基本知识在图像处理的广泛应用领域中,傅立叶变换起着非常重要的作用,具体表现在包括图像分析、图像增强及图像压缩等方面。假设f(x,y)是一个离散空间中的二维函数,则该函数的二维傅立叶变换的定义如下:11(2/)(2/)00(,)(,)MNjMpmjNqnmnFpqfmneep=0,1…M-1q=0,1…N-1(1)或12111201(,)(,)MNjmjnmnFfmneep=0,1…M-1q=0,1…N-1(2)离散傅立叶反变换的定义如下:11(2/)(2/)001(,)(,)MNjMpmjNqnpqfmnFpqeeMNm=0,1…M-1n=0,1…N-1(3)F(p,q)称为f(m,n)的离散傅立叶变换系数。这个式子表明,函数f(m,n)可以用无数个不同频率的复指数信号和表示,而在频率(w1,w2)处的复指数信号的幅度和相位是F(w1,w2)。2、MATLAB提供的快速傅立叶变换函数(1)fft2fft2函数用于计算二维快速傅立叶变换,其语法格式为:B=fft2(I)B=fft2(I)返回图像I的二维fft变换矩阵,输入图像I和输出图像B大小相同。例如,计算图像的二维傅立叶变换,并显示其幅值的结果,如图所示,其命令格式如下loadimdemossaturn2imshow(saturn2)B=fftshift(fft2(saturn2));imshow(log(abs(B)),[],‘notruesize’)4(2)fftshiftMATLAB提供的fftshift函数用于将变换后的图像频谱中心从矩阵的原点移到矩阵的中心,其语法格式为:B=fftshift(I)对于矩阵I,B=fftshift(I)将I的一、三象限和二、四象限进行互换。(3)ifft2ifft2函数用于计算图像的二维傅立叶反变换,其语法格式为:B=ifft2(I)B=ifft2(I)返回图像I的二维傅立叶反变换矩阵,输入图像I和输出图像B大小相同。其语法格式含义与fft2函数的语法格式相同,可以参考fft2函数的说明。5平移图像:I=imread('number.png');I=rgb2gray(I);subplot(2,2,1);imshow(I);title('原始图像');F1=fftshift(abs(fft2(I)));subplot(2,2,2);imshow(log(abs(F1)),[]);title('原始图像频谱');se=translate(strel(1),[2020]);I2=imdilate(I,se);subplot(2,2,3);imshow(I2);title('平移后图像');F2=fftshift(abs(fft2(I2)));subplot(2,2,4);imshow(log(abs(F2)),[]);title('平移图像频谱');旋转图像:f=imread('number.png');f=rgb2gray(f);subplot(2,2,1);imshow(f);title('原始图像');6F=fftshift(abs(fft2(f)));subplot(2,2,2);imshow(log(abs(F)),[]);title('原始图像频谱');fm=imrotate(f,45,'bilinear','crop');%%对其进行旋转subplot(2,2,3);imshow(fm);title('图像正向旋转45度');Fc=fftshift(abs(fft2(fm)));subplot(2,2,4);imshow(log(abs(Fc)),[]);title('旋转后图像的频谱');图像放大和缩小:f=imread('number.png');f=rgb2gray(f);subplot(2,3,1);imshow(f);title('原始图像');F=fftshift(abs(fft2(f)));subplot(2,3,2);imshow(log(abs(F)),[]);title('原始图像频谱');fa=imresize(f,2,'bilinear');subplot(2,3,3);imshow(fa);title('图像放大两倍');Fc=fftshift(abs(fft2(fa)));subplot(2,3,4);imshow(log(abs(Fc)),[]);title('放大后图像的频谱');fb=imresize(f,0.5,'bilinear');7subplot(2,3,5);imshow(fb);title('图像缩小一半');Fd=fftshift(abs(fft2(fb)));subplot(2,3,6);imshow(log(abs(Fd)),[]);title('缩小后图像的频谱');加入椒盐噪声:I=imread('rice.png');subplot(2,3,1);imshow(I);title('原始图像');F1=fftshift(abs(fft2(I)));subplot(2,3,2);imshow(log(abs(F1)),[]);title('原始图像频谱');J1=imnoise(I,'salt&pepper',0.02);%加入椒盐噪声subplot(2,3,3);imshow(J1);title('椒盐噪声图像');F1=fftshift(abs(fft2(J1)));subplot(2,3,4);imshow(log(abs(F1)),[]);title('椒盐噪声图像频谱')[M,N]=size(fftshift(fft2(double(J1))));nn=2;d0=20;m=fix(M/2);8n=fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+(d/d0)^(2*nn));%计算低通滤波器传递函数result(i,j)=h*g(i,j);endendresult=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));%显示滤波处理后的图像subplot(2,3,5);imshow(J3);title('滤波结果')F2=fftshift(abs(fft2(J3)));subplot(2,3,6);imshow(log(abs(F2)),[]);title('滤波后图像频谱')加入高斯噪声:9I=imread('rice.png');subplot(2,3,1);imshow(I);title('原始图像');F1=fftshift(abs(fft2(I)));subplot(2,3,2);imshow(log(abs(F1)),[]);title('原始图像频谱');J1=imnoise(I,'gaussian',0.02);%加入高斯噪声subplot(2,3,3);imshow(J1);title('高斯噪声图像');F1=fftshift(abs(fft2(J1)));subplot(2,3,4);imshow(log(abs(F1)),[]);title('高斯噪声图像频谱')[M,N]=size(fftshift(fft2(double(J1))));nn=2;d0=20;m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+(d/d0)^(2*nn));%计算低通滤波器传递函数result(i,j)=h*g(i,j);endendresult=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));%显示滤波处理后的图像subplot(2,3,5);imshow(J3);title('滤波结果')F2=fftshift(abs(fft2(J3)));subplot(2,3,6);imshow(log(abs(F2)),[]);title('滤波后图像频谱')10利用巴特沃斯低通滤波器对高斯噪声图像进行处理:clearall;closeall;A=imread('coins.png');I=imnoise(A,'gaussian',0.02);I=im2double(I);M=2*size(I,1);N=2*size(I,2);u=-M/2:(M/2-1);v=-N/2:(N/2-1);[U,V]=meshgrid(u,v);D=sqrt(U.^2+V.^2);D0=50;n=6;H=1./(1+(D./D0).^(2*n));J=fftshift(fft2(I,size(H,1),size(H,2)));K=J.*H;11L=ifft2(ifftshift(K));L=L(1:size(I,1),1:size(I,2));figure;subplot(131);imshow(I);title('高斯噪声图像');subplot(132);imshow(L);title('巴特沃
本文标题:实验二数字图像频域增强-研究生(1)
链接地址:https://www.777doc.com/doc-7218985 .html