matlab 频域滤波

步骤:

(1)计算原图像f(x,y)的DFT,

(2) 讲频谱的零频点移动到频谱图的中心位置;

(3)计算滤波器函数H(U,V)与F(U,V)的乘积G(U,V);

(4)讲频谱G(U,V)的零频点移回到频谱图的坐上角。

(5)计算(4)的结果的傅立叶反变换g(x,y);

(6)取g(x,y)的实部作为最终的滤波后的结果图像。

 

代码:

大家别激动的啦   代码来啦  哈哈哈 ~~~

 

clc;
clear all;
close all;
if(ndims==3 && size(I,3)==3)
    I=rgb2gray(I);
end
    f=fft2(I);
    s=fftshift(f);
    out=s.*ff
    out=ifftshift(out);
    out=ifft2(out);
    out=abs(out);
    out=out/max(out(:));


原理很简单的,当然代码的构思也so easy!!!!!!

你可能感兴趣的:(matlab 频域滤波)