matlab图像处理,对一幅图像做傅里叶变换,去掉细节部分留下轮廓部分,是去掉高频还是低频

2024-12-22 20:40:44
推荐回答(2个)
回答1:

图像的细节对应的是高频部分,轮廓对应的是图像的低频部分,所以要留下轮廓的话应该去掉高频,结果是图像被模糊了。主要就是使用一个频域滤波器滤除高频部分,对应的是图像处理知识中的频域滤波部分,建议搜一些相关资料,冈萨雷斯的《数字图像处理——matlab版》中就有相关知识的详细介绍,包括频域滤波原理和滤波器设计实例代码都很详细。

回答2:

%下面是一段做fft变换的程序;至于秩的问题,试一下就知道了。

im=imread('c:\1.bmp'); %读入图像
imshow(im);
[m,n]=size(im);
F=fftshift((fft2(double(im))));
m1=floor(m/2);
n1=floor(n/2);
d0=20;
for u=1:m
for v=1:n
d(u,v)=sqrt((u-m1)^2+(v-n1)^2);
if d(u,v)h(u,v)=1;
else
h(u,v)=0;
end
g(u,v)=h(u,v)*F(u,v);
end
end
butterfilter=ifft2(ifftshift(g));
figure,imshow(uint8(butterfilter));