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

具体怎么去除,请教,自己试了好多次没成功。还有去掉细节部分后,用rank函数对该图像矩阵进行秩的计算,会比原图的秩改变吗?

图像的细节对应的是高频部分,轮廓对应的是图像的低频部分,所以要留下轮廓的话应该去掉高频,结果是图像被模糊了。主要就是使用一个频域滤波器滤除高频部分,对应的是图像处理知识中的频域滤波部分,建议搜一些相关资料,冈萨雷斯的《数字图像处理——matlab版》中就有相关知识的详细介绍,包括频域滤波原理和滤波器设计实例代码都很详细。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-25
%下面是一段做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)<d0
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));

参考资料:http://zhidao.baidu.com/question/427614589.html?oldq=1

相似回答