Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-09-22, 17:24   #1
martinawd
初级会员
 
注册日期: 2009-09-22
帖子: 1
声望力: 0
martinawd 正向着好的方向发展
默认 关于巴特沃斯低通滤波器的问题

看到一个巴特沃斯低通滤波器的程序,程序代码如下
I=imread('7.bmp');
J=imread('5.bmp');
K=imabsdiff(I,J);
figure,imshow(K,[]);
L=rgb2gray(K);
f=double(L);
g=fft2(f);
g=fftshift(g);
[N1,N2]=size(g);
n=2;
d0=50;
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1;
for j=1:N2;
d=sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+0.414*(d/d0)^(2*n));
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
X2=ifft2(result);
X3=uint8(real(X2));
figure,imshow(X3)

我想请问的是巴特沃斯低通滤波器的函数式是H(u,v)=1/(1+(D/D0)^2n),但是程序中计算h的时候为什么多了个0.414
martinawd 当前离线   回复时引用此帖
旧 2009-10-15, 17:38   #2
zhaibolan
初级会员
 
注册日期: 2008-09-25
年龄: 43
帖子: 3
声望力: 0
zhaibolan 正向着好的方向发展
默认 回复: 关于巴特沃斯低通滤波器的问题

巴特沃兹滤波器有两种形式,在分母的第二项上加上系数(sqrt(2)-1)是另外一种形式的巴特沃兹滤波器,能问一下,这个图像的低通滤波程序是你写的吗?为什么图像数据在进行傅里叶变换前要乘以-1^(i+j),书上说这样可以使FFT变换后的结果中的低频数据处于图像中央,你只要为什么吗?谢谢
zhaibolan 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 02:40


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.