您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字图像处理代码Ch3《频率域滤波》
数字图像处理代码作业第1页来自《数字图像处理MATLAB版》书中示例,代码复制与运行结果。例3.1有和没有填充的滤波效果。clc,clear;closeall;%有和没有填充的滤波效果f=imread('Fig0405(a)(square_original).tif');%========无填充的滤波========[M,N]=size(f);[f,revertclass]=tofloat(f);F=fft2(f);sig=10;H=lpfilter('gaussian',M,N,sig);G=H.*F;g=ifft2(G);g=revertclass(g);subplot221;imshow(f);title('(a)尺寸为256×256像素的一幅图像');subplot222;imshow(g);title('(b)无填充时频率域中低通滤波后的图像');%=======有填充的滤波==========PQ=paddedsize(size(f));%f是浮点数Fp=fft2(f,PQ(1),PQ(2));%计算填充的FFTHp=lpfilter('gaussian',PQ(1),PQ(2),2*sig);Gp=Hp.*Fp;gp=ifft2(Gp);gpc=gp(1:size(f,1),1:size(f,2));gpc=revertclass(gpc);subplot223;imshow(gp);title('(c)图像滤波后用ifft2得到全填充图像');h=fspecial('gaussian',15,7);gs=imfilter(f,h);subplot224;imshow(gs);title('(d)有填充时频率域中低通滤波后的图像');运行结果:数字图像处理代码作业第2页例3.2空间滤波和频率域滤波的比较。clc,clear;closeall;%空间滤波和频率域滤波比较f=imread('Fig0409(a)(bld).tif');f=tofloat(f);F=fft2(f);S=fftshift(log(1+abs(F)));subplot121;imshow(f);title('(a)一幅灰度图像');subplot122;imshow(S,[]);title('(b)该图像的傅里叶谱');h=fspecial('sobel');%生成sobel滤波器figure;subplot221;freqz2(h);title('(a)相应于垂直sobel空间滤波器的频率域滤波器的绝对值');PQ=paddedsize(size(f));H=freqz2(h,PQ(1),PQ(2));H1=ifftshift(H);subplot222;mesh(abs(H1)');title('(b)经函数ifftshift处理后的同一滤波器');subplot223;imshow(abs(H),[]);title('以图像方式展示两个滤波器');subplot224;imshow(abs(H1),[]);title('以图像方式展示两个滤波器');gs=imfilter(f,h);%使用0填充图像边界gf=dftfilt(f,H1);figure;subplot221;imshow(gs,[]);title('(a)用垂直Sobel模板在空间域对原图像滤波结果');subplot222;imshow(gf,[]);title('(b)用滤波器b在频率域中得到的结果');subplot223;imshow(abs(gs),[]);title('(c)a的绝对值');subplot224;imshow(abs(gf),[]);title('(d)b的绝对值');figure;%阈值处理,使主要边缘显示更为清晰subplot121;imshow(abs(gs)0.2*abs(max(gs(:))));数字图像处理代码作业第3页title('(a)a图经阈值处理的二值图像');subplot122;imshow(abs(gf)0.2*abs(max(gf(:))));title('(b)b图经阈值处理的二值图像');运行结果:数字图像处理代码作业第4页d=abs(gs-gf);max(d(:))min(d(:))数字图像处理代码作业第5页例3.3函数dftuv的使用。clc,clear,closeall;%函数dftuv的使用[U,V]=dftuv(8,5);DSQ=U.^2+V.^2fftshift(DSQ)D=hypot(U,V)timeit(@()U.^2+V.^2)timeit(@()hypot(U,V))运行结果:例3.4低通滤波器。clc,clear,closeall;f=imread('Fig0413(a)(original_test_pattern).tif');[f,revertclass]=tofloat(f);PQ=paddedsize(size(f));[U,V]=dftuv(PQ(1),PQ(2));D=hypot(U,V);D0=0.05*PQ(2);F=fft2(f,PQ(1),PQ(2));%用于绘制频谱H=exp(-(D.^2)/(2*(D0^2)));g=dftfilt(f,H);g=revertclass(g);subplot221;imshow(f);title('(a)原始图像');subplot222;imshow(fftshift(H));title('(b)以图像形式显示的高斯低通滤波器');subplot223;imshow(log(1+abs(fftshift(F))),[]);title('(c)图(a)的谱');subplot224;imshow(g);title('(d)滤波后的图像');数字图像处理代码作业第6页运行结果:例3.5绘制线框图。clc,clear,closeall;H=fftshift(lpfilter('gaussian',500,500,50));%高斯低通滤波器subplot221;mesh(double(H(1:10:500,1:10:500)));%生成线框图axistight;%将轴的上下限设置为数据范围title('(a)使用函数mesh得到的图形');subplot222;mesh(double(H(1:10:500,1:10:500)));colormap([000]);axisoff;title('(b)去掉坐标轴和网格后的图形');subplot223;mesh(double(H(1:10:500,1:10:500)));axisoff;view(-25,30);%方位角-25,仰角30title('(c)使用函数view得到的不同透视图');subplot224;mesh(double(H(1:10:500,1:10:500)));axisoff;view(-25,0);title('(d)使用统一函数得到的另一透视图');%=============================figure;subplot121;surf(double(H(1:10:500,1:10:500)));axistight;title('(a)使用函数surf得到的图形');数字图像处理代码作业第7页colormap(gray);axisoff;subplot122;surf(double(H(1:10:500,1:10:500)));axistight;colormap(gray);axisoff;shadinginterp;title('(b)使用shadinginterp命令得到的结果');运行结果:例3.6高通滤波器。clc,clear;closeall;H=fftshift(hpfilter('ideal',500,500,50));subplot231;mesh(double(H(1:10:500,1:10:500)));title('(a)理想高通滤波器透视图');axistight;axisoff;%colormap([000]);数字图像处理代码作业第8页subplot234;imshow(H,[]);title('(d)相应图像');H1=fftshift(hpfilter('btw',500,500,50));subplot232;mesh(double(H1(1:10:500,1:10:500)));title('(b)巴特沃斯高通滤波器透视图');axistight;axisoff;%colormap([000]);subplot235;imshow(H1,[]);title('(e)相应图像');H2=fftshift(hpfilter('gaussian',500,500,50));subplot233;mesh(double(H2(1:10:500,1:10:500)));title('(c)高斯高通滤波器透视图');axistight;axisoff;%colormap([000]);subplot236;imshow(H2,[]);title('(f)相应图像');运行结果:例3.7高通滤波。clc,clear,closeall;f=imread('Fig0413(a)(original_test_pattern).tif');PQ=paddedsize(size(f));D0=0.05*PQ(1);H=hpfilter('gaussian',PQ(1),PQ(2),D0);g=dftfilt(f,H);subplot121;imshow(f);title('(a)原始图像');subplot122;imshow(g);title('(b)高斯高通滤波后的结果');figure;imshow(f+g);title('(c)原图像高斯增强后的结果');运行结果:数字图像处理代码作业第9页例3.8联合使用高频强调滤波和直方图均衡。clc,clear;closeall;f=imread('Fig0419(a)(chestXray_original).tif');PQ=paddedsize(size(f));D0=0.05*PQ(1);HBW=hpfilter('btw',PQ(1),PQ(2),D0,2);H=0.5+2*HBW;gbw=dftfilt(f,HBW,'fltpoint');gbw=gscale(gbw);%高通滤波结果ghf=dftfilt(f,H,'fltpoint');数字图像处理代码作业第10页ghf=gscale(ghf);%高频强调处理后的结果ghe=histeq(ghf,256);%直方图均衡subplot221;imshow(f);title('(a)原始图像');subplot222,imshow(gbw);title('(b)高通滤波后的结果');subplot223;imshow(ghf);title('(c)经高频强调处理后的结果');subplot224;imshow(ghe);title('(d)图c经直方图均衡后的图像');运行结果:clc,clear;closeall;%二维DFTf=imread('Fig0424(a)(rectangle).tif');F=fft2(f);S=abs(F);subplot221;imshow(f);title('(a)图像');subplot222;imshow(S,[]);title('(b)傅里叶的谱');Fc=fftshift(F);subplot234;imshow(abs(Fc),[]);title('(c)居中的谱');S2=log(1+abs(Fc));subplot235;imshow(S2,[]);title('(d)使用对数变换增强后的可见谱');phi=angle(F)*180/pi;数字图像处理代码作业第11页subplot236;imshow(phi,[]);title('(e)相角图像');运行结果:c
本文标题:数字图像处理代码Ch3《频率域滤波》
链接地址:https://www.777doc.com/doc-4710687 .html