频率域低通滤波

introduction

图像噪声在空间域通过相邻像素可以去除噪声,但有时效果不理想。典型的空域滤波有均值滤波,中值滤波,高斯滤波等。
将图像转换到频率域后,频率图像具有较高的‘规范性’,依据能量分布可以有效去除噪声,低频部分主要是灰度平滑区域,高频部分可能是噪声或者图像边缘特征,主要是灰度变化较大区域。通过低通滤波器,滤除高频部分,保留低频部分,可有效去除噪声。

ideal lowpass filter

H ( u , v ) = { 1 , if  D ( u , v )   ≤ D 0 0 , if  D ( u , v ) ≥ D 0 H(u,v)= \begin{cases} 1, & \text{if $D(u,v)$ } \leq D_{0}\\ 0, & \text{if $D(u,v)$} \geq D_{0} \end{cases} H(u,v)={1,0,if D(u,v) D0if D(u,v)D0
D 0 D_{0} D0表示通带的半径, D ( u , v ) D(u,v) D(u,v)表示两点间的距离。
使用低通滤波器所得到的结果如下所示。低通滤波器滤除了高频成分,所以使得图像模糊。由于理想低通滤波器的过度特性过于急峻,所以会产生了振铃现象。
频率域低通滤波_第1张图片
频率域低通滤波_第2张图片

gaussian lowpass filter

H ( u , v ) = e − D ( u , v ) 2 2 ∗ D 0 2 H(u,v)=e^{-\frac{D(u,v)^{2}}{2*D_{0}^{2}}} H(u,v)=e2D02D(u,v)2
D0表示通带的半径。高斯滤波器的过度特性非常平坦,因此是不会产生振铃现象的。
频率域低通滤波_第3张图片
[外链图片转存失败(img-mOrcsT0v-1568454970287)(https://img-blog.csdn.net/20170517163016700?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2lsZW5jZTIwMTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

###penguin demo

%% lowpass filters demo
clear;
clc;
I=imread('penguin.jpg');
I=im2double(I);
if ~(size(I,3)-3)
    I=rgb2gray(I);
end
I=imnoise(I,'gaussian');
[m,n]=size(I);
%% fourier transform
g1=fft2(I);
g1=fftshift(g1);  % 中心化
subplot(1,2,1),imshow(I,[]),title('penguin image with noise');
subplot(1,2,2),imshow(log(1+abs(g1)),[]),title('fourier image of penguin');
%% ideal lowpass filter
H=zeros(m,n);
centerx=m/2;
centery=n/2;
D0=90;
for x=1:m
    for y=1:n
        H(x,y)=exp(-((x-centerx)^2+(y-centery)^2)/(2*D0^2));  %计算高斯滤波模板
    end
end

figure,imshow(H,[]),title('gaussian filter');

g2=H.*g1;
% 先反中心化,在转到空域图像
g3=ifftshift(g2);
I2=real(ifft2(g3));

figure;
subplot(1,2,1),imshow(log(1+abs(g2)),[]),title('fouier image filtered by gaussian filter');
subplot(1,2,2),imshow(I2,[]),title('lowpassed image');

%% gaussian lowpass filter
H=zeros(m,n);

for x=1:m
    for y=1:n
        if sqrt((x-centerx)^2+(y-centery)^2)<160 H(x,y)=1;end
    end
end

figure,imshow(H,[]),title('ideal filter');

g2=H.*g1;
g3=ifftshift(g2);
I2=real(ifft2(g3));

figure;
subplot(1,2,1),imshow(log(1+abs(g2)),[]),title('fouier image filtered by ideal filter');
subplot(1,2,2),imshow(I2,[]),title('lowpassed image');

频率域低通滤波_第4张图片
频率域低通滤波_第5张图片
频率域低通滤波_第6张图片
频率域低通滤波_第7张图片
频率域低通滤波_第8张图片

你可能感兴趣的:(数字图像处理)