MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB图像处理] 关于巴特沃斯低通滤波器的问题 (https://www.labfans.com/bbs/showthread.php?t=9733)

martinawd 2009-09-22 17:24

关于巴特沃斯低通滤波器的问题
 
看到一个巴特沃斯低通滤波器的程序,程序代码如下
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

zhaibolan 2009-10-15 17:38

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


所有时间均为北京时间。现在的时间是 11:07

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