数字图像处理高通滤波器
姓名:*** 学号:**********
高通滤波是常见的频域增强的方法之一。
高通滤波与低通滤波相反,它是高频分量顺利通过,使低频分量受到削弱。
这里考虑三种高通滤波器:理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器。
这三种滤波器涵盖了从非常尖锐(理想)到非常平坦(高斯)范围的滤渡器函数,其转移函数分别为:
1、理想高通滤波器(IHPF )
),(),(10),(D v u D D v u D v u H >≤⎩⎨⎧= 2、巴特沃斯高通滤波器(BHPF ) n v u D D v u H 20),()12(11),(⎥⎦
⎤⎢⎣⎡-+= 3、高斯高通滤波器(GHPF ) 2022/v ,u D 1),(D e
v u H )(--=
一、数字图像高通滤波器的实验过程:
1、理想高通滤波器程序
clear all ;clc;
image = imread('test.jpg');
gimage_15 = func_ihpf(image,15);
gimage_30 = func_ihpf(image,30);
gimage_80 = func_ihpf(image,80);
figure
subplot(221),imshow(image);
title('Original');
subplot(222),imshow(gimage_15);
title('d0=15');
subplot(223),imshow(gimage_30);
title('d0=30');
subplot(224),imshow(gimage_80);
title('d0=80');
%被调函数子函数G(u,v)=F(u,v)H(u,v)
function gimage = func_ihpf(image,d0)
image = double(image);
f = fftshift(fft2(image));
[M,N]=size(f);
a0 = fix(M/2);
b0 = fix(N/2);
for i=1:M
for j=1:N
D = sqrt((i-a0)^2+(j-b0)^2);
if(D>d0)
h=1;
else
h=0;
end
g(i,j)=h*f(i,j);
end
end
gimage = uint8(real(ifft2(ifftshift(g))));
2、巴特沃斯高通滤波器程序
clear all;clc;
image = imread('test.jpg');
gimage_15 = func_bhpf(image,15);
gimage_30 = func_bhpf(image,30);
gimage_80 = func_bhpf(image,80);
figure
subplot(221),imshow(image);
title('Original');
subplot(222),imshow(gimage_15);
title('d0=15');
subplot(223),imshow(gimage_30);
title('d0=30');
subplot(224),imshow(gimage_80);
title('d0=80');
%被调函数子函数G(u,v)=F(u,v)H(u,v)
function gimage = func_bhpf(image,d0) image = double(image);
f = fftshift(fft2(image));
[M,N]=size(f);
nn = 1; %巴特沃斯阶数
a0 = fix(M/2);
b0 = fix(N/2);
for i=1:M
for j=1:N
D = sqrt((i-a0)^2+(j-b0)^2);
if(D == 0)
h=0;
else
h=1/(1+0.414*(d0/D)^(2*nn));
end
g(i,j)=h*f(i,j);
end
end
gimage = uint8(real(ifft2(ifftshift(g))));
3、高斯高通滤波器程序
clear all;clc;
image = imread('test.jpg');
gimage_15 = func_ghpf(image,15);
gimage_30 = func_ghpf(image,30);
gimage_80 = func_ghpf(image,80);
figure
subplot(221),imshow(image);
title('Original');
subplot(222),imshow(gimage_15);
title('d0=15');
subplot(223),imshow(gimage_30);
title('d0=30');
subplot(224),imshow(gimage_80);
title('d0=80');
%被调函数子函数G(u,v)=F(u,v)H(u,v)
function gimage = func_ghpf(image,d0)
image = double(image);
f = fftshift(fft2(image));
[M,N]=size(f);
a0 = fix(M/2);
b0 = fix(N/2);
for i=1:M
for j=1:N
D = sqrt((i-a0)^2+(j-b0)^2);
h=1-exp(-(D.^2)./(2*(d0^2)));
g(i,j)=h*f(i,j);
end
end
gimage = uint8(real(ifft2(ifftshift(g))));
二、图像频域边缘增强的实验结果分析与讨论
1、理想高通滤波器
图1理想高通滤波器滤波效果(d0=15,30,80)
当d0=15时,滤波后的图像无直流分量,但灰度的变化部分基本保留。
当d0=30时,滤波后的图像在图像轮廓的大部分信息仍然保留。
当d0=80时,滤波后的图像只剩下边缘及斑点等信号突变部分。
2、巴特沃斯高通滤波器
图2一阶巴特沃斯高通滤波器滤波效果(d0=15,30,80)
图3十五阶巴特沃斯高通滤波器滤波效果(d0=15,30,80)类似于低通滤波器的时候,巴特沃斯高通滤波器比理想高通滤波器更加平滑,边缘失真情况比后者小的多。
巴特沃思滤波器有一个参数,称为滤波器的“阶数”。
当此参数的值较高时,巴特沃思滤渡器接近理想滤波器。
因此,巴特沃思滤波器可看做两种“极端”滤波器的过渡。
一个一阶的巴特沃思滤波器没有振铃,在二阶中振铃通常很微小,但阶数增高时振铃便成为一个重要因素。
3、高斯高通滤波器
图4高斯高通滤波器滤波效果(d0=15,30,80)
高斯高通滤波器得到的结果比前两种滤波器更为平滑,结果图像中对于微小边缘和细条,如钢环的棱的过滤也是较为清晰的。
从实验的仿真结果我们可以看出,不同的滤波器对图像的滤波效果是不同的。
它们的共同点是图像在经过高通滤波后,消除了模糊,突出了边缘,使低频分量得到了抑制,从而增强了高频分量,使图像的边沿或线条变得清晰,实现了图像的锐化。
但理想高通滤波器出现了明显的振铃现象,即图像边缘有抖动现象;而Butterworth滤波器高通效果较好,但是计算复杂,其优点是有少量的低频通过,故H(u,v)是渐变的,振铃不明显;高斯高通滤波效果比前两者都要好些,但振铃也不明显,但是计算较为复杂。
而且不同的滤波半径和不同的滤波器阶数对图像的滤波效果也是不同的。
滤波半径越越小,则图像的滤波效果越好;滤波器阶数越高,则滤波效果越好。