傅里叶变换
F=fft2(f,p,q) p,q为填充的尺寸(滤波需要)
傅里叶谱(元素幅度)S=abs(F) imshow(S,[])
原点移到中心fc=fftshift(F) (频域滤波不需要)
计算反正切(相角)phi=atan2(I,R)
%频域滤波
f=imread('d.tif');
imshow(f,[])
F=fft2(f);
S=fftshift(log(1+abs(F)));
figure,imshow(S,[])
h=fspecial('sobel');
freqz2(h) %三维图
PQ=paddedsize(size(f)); %尺寸
H=freqz2(h,PQ(1),PQ(2));
H1=ifftshift(H);
imshow(abs(H),[])
figure,imshow(abs(H1),[])
%滤波后的空间域
gs=imfilter(f,h);%空间滤波
gf=dftfilt(f,H1)%频率滤波
figure,imshow(abs(gs)>0.2*abs(max(gs(:))))
figure,imshow(abs(gf)>0.2*abs(max(gf(:))))
%高斯低通滤波
f=imread('e.tif');
[f,revertclass]=tofloat(f);
PQ=paddedsize(size(f));
[u,v]=dftuv(PQ(1),PQ(2));
D=hypot(u,v); %计算到原点0,0距离 原点为中心用fftshift
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);
figure,imshow(fftshift(H))
figure,imshow(log(1+abs(fftshift(F))),[])
figure,imshow(g)
3D线框:mesh(H) mesh(H(1:k:end,1:k:end))
颜色colormap
网格grid off
轴axis off
观察点view(方位角,仰角)
理想高通滤波器IHPF
巴特沃思高通滤波器BHBF
高斯高通滤波器(GHPF的结果比BHBF和IHPF的结果更平滑)
频率域的拉普拉斯算子
钝化模板、高频提升滤波和高频加强 滤波
%高通滤波
f=imread('e.tif');
[f,revertclass]=tofloat(f);
PQ=paddedsize(size(f));
[u,v]=dftuv(PQ(1),PQ(2));
D=hypot(u,v); %计算到原点0,0距离 原点为中心用fftshift
D0=0.05*PQ(2);
H=hpfilter('gaussian',PQ(1),PQ(2),D0);
g=dftfilt(f,H);%滤波
figure,imshow(g)
%高通滤波
f=imread('f.tif');
figure,imshow(f)
%[f,revertclass]=tofloat(f);
PQ=paddedsize(size(f));
[u,v]=dftuv(PQ(1),PQ(2));
D=hypot(u,v); %计算到原点0,0距离 原点为中心用fftshift
D0=0.05*PQ(2);
HBW=hpfilter('btw',PQ(1),PQ(2),D0,2);
H=0.5+2*HBW;
gbw=dftfilt(f,HBW);
gbw=gscale(gbw);%将灰度值自动缩放到0~255之间
figure,subplot(221),imshow(gbw,[])
title('高通滤波图像');
ghw=histeq(gbw,256);
subplot(222),imshow(ghw,[])
title('高通均衡图像');
gbf=dftfilt(f,H);
gbf=gscale(gbf);
subplot(223),imshow(gbf,[])
title('强调后图像');
ghe=histeq(gbf,256);%直方图均衡化
subplot(224),imshow(ghe,[])
title('强调均衡图像');
带阻带通
陷波带阻 陷波带通