低通(平滑)频率域滤波器
低通滤波器
clf
f=imread('/MATLAB Drive/shiyan.jpg');
f=im2double(f);
PQ=paddedsize(size(f));
f=fft2(f,PQ(1),PQ(2));
LI=lpfilter('ideal',PQ(1),PQ(2),0.05*PQ(2),2);
LB=lpfilter('btw',PQ(1),PQ(2),0.05*PQ(2),2);
LG=lpfilter('gaussian',PQ(1),PQ(2),0.05*PQ(2),2);
gbw1=dftfilt(f,LI);
gbw2=dftfilt(f,LB);
gbw3=dftfilt(f,LG);
figure,subplot(221),imshow(f,[]),title('原图像');
subplot(222),imshow(gbw1,[]),title('理想低通滤波结果');
subplot(223),imshow(gbw2,[]),title('巴特沃斯低通滤波结果');
subplot(224),imshow(gbw3,[]),title('高斯低通滤波结果');
高通(锐化)频率域滤波器
高通巴特沃斯滤波
f=imread("/MATLAB Drive/shiyan.jpg");
f=im2double(f);
PQ=paddedsize(size(f));
HBW=hpfilter('btw',PQ(1),PQ(2),0.05*PQ(2),2);
gbw=dftfilt(f,HBW);
figure,subplot(221),imshow(f,[]),title('原图像');
subplot(222),imshow(gbw,[]),title('高通巴特沃斯滤波结果');
高斯高通滤波
f=imread('/MATLAB Drive/shiyan.jpg');
f=im2double(f);
PQ=paddedsize(size(f));
F=fft2(f,PQ(1),PQ(2));
H=hpfilter('gaussian',PQ(1),PQ(2),0.05*PQ(2));
g=dftfilt(f,H);
G=fft2(g,PQ(1),PQ(2));
figure,subplot(221),imshow(f,[]),title('原图像');
subplot(223),imshow(log(1+fftshift(abs(F))),[]),title('原图像的谱');
subplot(222),imshow(g,[]),title('高斯高通滤波结果');
subplot(224),imshow(log(1+fftshift(abs(G))),[]),title('高斯高通滤波结果的谱');
高频强调滤波
f=imread('/MATLAB Drive/shiyan.jpg');
f=im2double(f);
PQ=paddedsize(size(f));
HBW=hpfilter('btw',PQ(1),PQ(2),0.05*PQ(2),2);
gbw=dftfilt(f,HBW);
gbw=gscale(gbw);
figure,subplot(221),imshow(f,[]),title('原图像');
subplot(222),imshow(gbw,[]),title('高频强调巴特沃斯滤波结果');
H=0.5+2*HBW;
ghf=dftfilt(f,H);
ghf=gscale(ghf);
subplot(223),imshow(ghf,[]),title('高频强调滤波结果');
注意:实验图片为二维灰度图片,你的本机matlab 软件可能缺少相关函数文件,相关文件已附载
为学习笔记,如有错误,请指教,谢谢