![]() |
关于巴特沃斯低通滤波器的问题
看到一个巴特沃斯低通滤波器的程序,程序代码如下
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 |
回复: 关于巴特沃斯低通滤波器的问题
巴特沃兹滤波器有两种形式,在分母的第二项上加上系数(sqrt(2)-1)是另外一种形式的巴特沃兹滤波器,能问一下,这个图像的低通滤波程序是你写的吗?为什么图像数据在进行傅里叶变换前要乘以-1^(i+j),书上说这样可以使FFT变换后的结果中的低频数据处于图像中央,你只要为什么吗?谢谢
|
所有时间均为北京时间。现在的时间是 11:07。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.