……………………………………………………装………………订………………线……………………………………………………………………
(4) 梯形低通滤波器:
一个截止频率为D0的n阶梯形低通滤波器的传递函数如下(5-14):
?1D?m,n??D0??1?D?m,n??D1? D?m,n??D1 D?m,n??D0 (5-14) H?m,n????D0?D1D?m,n??D1??0式中,D1为大于D0的区域。
理想低通滤波器无法用电子器件实现,尽管它可以在计算机上仿真实现。梯形低通滤波器不常用。下面主要介绍实际中常用的巴特沃斯低通滤波器和指数低通滤波器。
MATLAB Butterworth低通滤波器程序代码如下: clear all;
I=imread('mao.jpg'); figure;imshow(I);
I2=imnoise(I,'salt & pepper',0.05); %给图像添加椒盐噪声 figure;imshow(I2); f=double(I2); k=fft2(f); g=fftshift(k);
[N1,N2]=size(g); n=2; d0=25;
u0=round(N1/2); v0=round(N2/2); for i=1:N1 for j=1:N2
d=sqrt((i-u0)^2+(i-v0)^2); h=1/(1+0.414*d/d0)^(2*n);
y(i,j)=h*g(i,j); end end
y=ifftshift(y); e1=ifft2(y);
e2=uint8(real(e1)); figure;imshow(e2);
运行程序,得到如下结果图5-9:
可以看出,经过Butterworth低通滤波器处理后的图像边缘模糊程度大大降低,去除噪声从而使图像增强。
第 28 页 共 41 页
……………………………………………………装………………订………………线……………………………………………………………………
(1) 原图 (2) 含有椒盐噪声的图像
(3) Butterworth低通滤波器
处理后图像
图5-9 Butterworth低通滤波器
MATLAB 指数低通滤波器程序代码如下: clear all;
I=imread('mao.jpg');
I2=imnoise(I,'salt & pepper',0.05); %给图像添加椒盐噪声 figure;imshow(I2); f=double(I2); k=fft2(f);
g=fftshift(k); [N1,N2]=size(g); n=2; d0=25;
u0=round(N1/2); v0=round(N2/2); for i=1:N1 for j=1:N2
d=sqrt((i-u0)^2+(i-v0)^2); h=exp(-(d/d0)^2);
第 29 页 共 41 页
……………………………………………………装………………订………………线……………………………………………………………………
y(i,j)=h*g(i,j); end end
y=ifftshift(y); e1=ifft2(y);
e2=uint8(real(e1)); figure;imshow(e2);
运行程序,得到如下结果图5-10:
(1) 含有椒盐噪声的图像 (2)指数低通滤波器处理后图像 图5-10 指数低通滤波器
可以看出,指数低通滤波器和巴特沃斯低通滤波器效果差不多。
5.3.3 高通滤波
图像中物体的边缘及其他灰度变化较快的区域与图像的高频信息有关,因此,利用高通滤波器可以对图像的边缘信息进行增强,起到锐化图像的作用。高通滤波器与低通滤波器一样有四种滤波器,不一样的就是变成高频通过,与低通滤波原理相反,这里就不详细其他两种不常用的滤波器原理。
一个截止频率为D0的n阶Butterworth高通滤波器的传递函数如下(5-15):
1 H(u,v)? (5-15) 2n?D0?1???D?u,v?????一个截止频率为D0的n阶指数高通滤波器的传递函数如下(5-16):
n
H?u,v??e?D0????D?u,v????0? (5-16)
下面主要介绍巴特沃斯高通滤波器和指数高通滤波器。
MATLAB Butterworth高通滤波器程序代码如下: clear all;
I1=imread('mao.jpg'); figure,imshow(I1); f=double(I1);
第 30 页 共 41 页
……………………………………………………装………………订………………线……………………………………………………………………
g=fft2(f); %采用傅里叶变换 g=fftshift(g); %数据矩阵平衡 [N1,N2]=size(g);
n=2; %二阶巴特沃斯高通滤波器 d0=5;
n1=fix(N1/2); n2=fix(N2/2); for i=1:N1 for j=1:N2
d=sqrt((i-n1)^2+(j-n2)^2);
if(d==0) h=0; else
h=1/(1+0.414*(d0/d)^(2*n)); %计算传递函数 end
result(i,j)=h*g(i,j); end end
result=ifftshift(result); X2=ifft2(result); X3=uint8(real(X2)); figure,imshow(X3);
运行程序,得到如下结果图5-10:
(1) 原图 (2) Butterworth高通滤波器 处理后图像 图5-10 Butterworth高通滤波器
可以看出,经过了Butterworth高通滤波器,图像高频部分比较突出了,达到了增强的效果。
第 31 页 共 41 页
相关推荐: