频率域图像增强

频率域图像增强

文章目录

  • 频率域图像增强
    • 1. 频率域平滑滤波器
      • 1.1 理想低通滤波器
      • 1.2 巴特沃斯(Butterworth)低通滤波器
      • 1.3 指数低通滤波器
      • 1.4 梯形低通滤波器
    • 2. 频率域锐化滤波器
      • 2.1 理想高通滤波器
      • 2.2 巴特沃斯高通滤波器
      • 2.3 指数高通滤波器
      • 2.4 梯形高通滤波器

1. 频率域平滑滤波器

图像空间域的线性邻域卷积实际上是图像经过滤波器对信号频率成分的滤波,这种功能可以在变换域实现,即把原始图像进行正变换,设计滤波器用点操作的方法加工频谱数据(变换系数),然后再进行反变换,即完成处理工作。

补充:高通:外白内黑,重视高频区域,去除低频区域。 低通:外黑内白,提取低频部分。 低频区域指的是空间域中像素变化缓慢的区域,而高频区域指的是空间域中像素变化陡的区域,如边界。

1.1 理想低通滤波器

理想低通滤波是指输入信号在通带内所有频率分量完全无损地通过,而在阻带内所有频率分量完全衰减。设傅里叶平面上理想低通滤波器离开原点的截至频率为D0 ,则其传递函数为:
H ( u , v ) = { 1 D ( u , v ) ≤ D 0 0 D ( u , v ) > D 0 H(u,v)=\begin{cases} 1 \qquad D(u,v)\leq D_0\\ 0 \qquad D(u,v)> D_0 \end{cases} H(u,v)={1D(u,v)D00D(u,v)>D0
理想低通滤波器有陡峭频率的截至特性,但是会产生振铃现象使图像变得模糊,该滤波器具有物理不可实现性。产生一个128*128,截止频率为15的理想低通滤波器的matlab程序如下:

%% 生成一个128*128,截至频率为15的理想低通滤波器
close,clc,clear;    %初始化
for u=1:128
    for v=1:128
        if sqrt((u-64)^2+(v-64)^2)<=15
            H(u,v)=1;
        else
           H(u,v)=0; 
        end
    end
end
imshow(H);[u,v]=freqspace(128,'meshgrid');  %频率响应的频率间距
figure,mesh(u,v,H)

程序运行结果如下:
频率域图像增强_第1张图片

1.2 巴特沃斯(Butterworth)低通滤波器

n阶Butterworth低通滤波器的传递函数为:
H ( u , v ) = 1 1 + [ D ( u , v ) D 0 ] 2 n H(u,v)=\frac{1}{1+[\frac{D(u,v)}{D_0}]^{2n}} H(u,v)=1+[D0D(u,v)]2n1
式中,D0 为截止频率。 D ( u , v ) D 0 = 1 \frac{D(u,v)}{D_0}=1 D0D(u,v)=1 时,H(u,v)=0.5,它的特性时传递函数比较平滑,连续性衰减,而不像理想低通滤波器那样陡峭变化,即具有不明显的不连续性。因此采用该滤波器滤波在抑制噪声的同时,图像边缘的模糊程度大大减小,没有振铃现象产生。

例:采用Butterworth低通滤波器对lena图像进行低通滤波,可以明显从结果中看出,滤波后结果变得模糊了

matlab程序如下:

%% 采用Butterworth低通滤波器对lena图像进行低通滤波
close,clc,clear;    %初始化
I=imread('D:\xcz\matlab_example\images\lena.bmp');
I1=fftshift(fft2(I));
[M,N]=size(I1,[1,2]);
n=2;d0=30;
n1=floor(M/2);n2=floor(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        H=1/(1+(d/d0)^(2*n));
        I2(i,j)=H*I1(i,j);
    end
end
I2=ifftshift(I2);
I3=real(ifft2(I2));
subplot(1,2,1),title("原图");imshow(I);
subplot(1,2,2),title("Butterworth低通滤波之后");imshow(I3,[]);

程序运行结果如下图:
频率域图像增强_第2张图片

1.3 指数低通滤波器

指数低通滤波器是图像处理中常用的一种平滑滤波器,其传递函数为:
H ( u , v ) = e [ − D ( u , v ) D 0 ] n H(u,v)=e^{[-\frac{D(u,v)}{D_0}]^n} H(u,v)=e[D0D(u,v)]n
采用该滤波器滤波在抑制噪声的同时,图像边缘的模糊程度较用Buffterworth滤波产生的大,无明显的振铃效应。

1.4 梯形低通滤波器

梯形低通滤波器是理想低通滤波器和完全平滑滤波器的折中,其传递函数为:
H ( u , v ) = { 1 D ( u , v ) < D 0 D ( u , v ) − D 1 D 0 − D 1 D 0 ≤ D ( u , v ) ≤ D 1 0 D ( u , v ) > D 0 H(u,v)=\begin{cases} 1\qquad D(u,v)D_0\\ \end{cases} H(u,v)=1D(u,v)<D0D0D1D(u,v)D1D0D(u,v)D10D(u,v)>D0
它的性能介于理性低通滤波器和指数滤波器之间,滤波的图像有一定的模糊和振铃效应。

2. 频率域锐化滤波器

图像的边缘、细节主要位于高频部分,而图像的模糊是由于高频成分比较弱产生的。频率域锐化主要是为了消除模糊,突出边缘。因此采用高通滤波器让高频成分通过,使得低频成分削弱,再经过傅里叶逆变换使得到边缘锐化的图像。常用的高通滤波器有以下几种。

2.1 理想高通滤波器

二维理想高通滤波器的传递函数为:
H ( u , v ) = { 0 D ( u , v ) ≤ D 0 1 D ( u , v ) > D 0 H(u,v)=\begin{cases} 0 \qquad D(u,v)\leq D_0\\ 1 \qquad D(u,v) >D_0 \end{cases} H(u,v)={0D(u,v)D01D(u,v)>D0

2.2 巴特沃斯高通滤波器

n阶巴特沃斯高通滤波器的传递函数定义如下:
H ( u , v ) = 1 1 + [ D 0 / D ( u , v ) ] 2 n H(u,v)=\frac{1}{1+[D_0/D(u,v)]^{2n}} H(u,v)=1+[D0/D(u,v)]2n1
例:采用巴特沃斯高通滤波器对lena图进行锐化

%% 采用Butterworth高通滤波器对lena图像进行高通滤波
close,clc,clear;    %初始化
I=imread('D:\xcz\matlab_example\images\lena.bmp');
I1=fftshift(fft2(I));
[M,N]=size(I1,[1,2]);
n=2;d0=30;
n1=floor(M/2);n2=floor(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        H=1/(1+(d0/d)^(2*n));
        I2(i,j)=H*I1(i,j);
    end
end
I2=ifftshift(I2);
I3=real(ifft2(I2));
subplot(1,2,1),title("原图");imshow(I);
subplot(1,2,2),title("Butterworth高通滤波之后");imshow(I3,[]);

结果如下:
频率域图像增强_第3张图片

2.3 指数高通滤波器

指数高通滤波器传递函数为:
H ( u , v ) = e [ − D 0 D ( u , v ) ] n H(u,v)=e^{[-\frac{D_0}{D(u,v)}]^n} H(u,v)=e[D(u,v)D0]n

2.4 梯形高通滤波器

梯形高通滤波器的定义为:
H ( u , v ) = { 0 D ( u , v ) < D 0 D ( u , v ) − D 1 D 0 − D 1 D 1 ≤ D ( u , v ) ≤ D 0 1 D ( u , v ) > D 0 H(u,v)=\begin{cases} 0\qquad D(u,v)D_0\\ \end{cases} H(u,v)=0D(u,v)<D0D0D1D(u,v)D1D1D(u,v)D01D(u,v)>D0
四种滤波器的选用类似于低通,其中理想高通有明显振铃现象,即图像的边缘有抖动现象;Butterworth高通滤波的效果较好,但是计算复杂,其优点是有少量低频通过,H(u,v)是渐变的,振铃现象不明显;指数高通效果比Butterworth差些,振铃现象不明显;梯形高通会产生微振铃现象,但是计算简单,比较常用。一般来说,不管是在图像空间域还是频率域,采用高通滤波不但会使有用的消息增强,同时也会使噪声增强,因此不能随意使用。

你可能感兴趣的:(Matlab,matlab,算法,开发语言)