数字图像处理实验之图像频率滤波处理

1. 实验目的

1.理解并掌握图像傅立叶变换的基本原理,注意傅里叶变换的数学基础;
2.掌握图像频域滤波的基本步骤,复习频率域滤波的各个步骤,以及步骤进行的原因和解决的问题,在原理上支撑试验;
3.熟悉 matlab 相关的图像处理操作函数,比如fft2,ifft2,fftshift,ifftshift,abs等函数。熟悉函数的输入、输出值含义,掌握函数调用和使用;

2. 实验流程

2.1 图像傅里叶变换

在这里插入图片描述

2.2 巴特沃斯低通/高通滤波

在这里插入图片描述

2.3 滤波函数

在这里插入图片描述

3. 实验代码

3.1图像傅里叶变换/反变换

%% 二维傅里叶变换实验
clear,clc,close ALL;
tic
%实现并显示图像的傅里叶变换
P1 = imread('fft/1.tif');
P2 = imread('fft/2.tif');
F1 = fft2(P1);
F2 = fft2(P2);
S1 = log(1+abs(F1));
S2 = log(1+abs(F2));
SS1 = fftshift(S1);
SS2 = fftshift(S2);
iS1 = ifftshift(SS1);
iS2 = ifftshift(SS2);
iF1 = ifft2(F1);
iF2 = ifft2(F2);
figure('Name','滤波原图','NumberTitle','off');
subplot(251),imshow(P1),title('图像1原图');
subplot(252),imshow(S1,[]),title('图像1灰度压缩后的频谱图');
subplot(253),imshow(SS1,[]),title('图像1频谱图经fftshift中心化处理');
subplot(254),imshow(iS1,[]),title('图像1频谱图经ifftshift去中心化处理');
subplot(255),imshow(iF1,[]),title('傅里叶反变换图');
subplot(256),imshow(P2),title('图像2原图');
subplot(257),imshow(S2,[]),title('图像2灰度压缩后的频谱图');
subplot(258),imshow(SS2,[]),title('图像2频谱图经fftshift中心化处理');
subplot(2,5,9),imshow(iS2,[]),title('图像2频谱图经ifftshift去中心化处理');
subplot(2,5,10),imshow(iF2,[]),title('傅里叶反变换图');
toc

3.2 巴特沃斯低通滤波

%% 低通滤波器的设计与实现
clear,clc,close ALL;
tic
I1 = imread('lowpass/1.tif');
I11 = imread('lowpass/2.tif');
I111 = imread('lowpass/3.tif');
[M1,N1] = size(I1);%获取图像的大小
[M2,N2] = size(I11);
[M3,N3] = size(I111);
F1 = fft2(I1,2*M1,2*N1);%对图像做傅里叶变换并同时实现填充
F2 = fft2(I11,2*M2,2*N2);
F3 = fft2(I111,2*M3,2*N3);
Fshift1 = fftshift(F1);%中心化
Fshift2 = fftshift(F2);
Fshift3 = fftshift(F3);
H1 = low_f(2*M1,2*N1,2,50);%调用自定义低通滤波函数
H2 = low_f(2*M2,2*N2,2,50);
H3 = low_f(2*M3,2*N3,2,50);
G1 = H1.*Fshift1;%频域相乘,滤波处理
G2 = H2.*Fshift2;
G3 = H3.*Fshift3;
Fi1 = ifftshift(G1);%去中心化
Fi2 = ifftshift(G2);
Fi3 = ifftshift(G3);
Freal1 = real(ifft2(Fi1));%傅里叶反变换,取实部
Freal2 = real(ifft2(Fi2));
Freal3 = real(ifft2(Fi3));
Fint1 = uint8(Freal1);
Fint2 = uint8(Freal2);
Fint3 = uint8(Freal3);
OUT1 = Fint1(1:size(I1,1),1:size(I1,2));%图像还原为原来的大小
OUT2 = Fint2(1:size(I11,1),1:size(I11,2));
OUT3 = Fint3(1:size(I111,1),1:size(I111,2));
figure('Name','频率域滤波','NumberTitle','off');
subplot(3,4,1);imshow(I1),title('原图像1');
subplot(3,4,2);imshow(H1);
subplot(3,4,3);imshow(OUT1);title('低通滤波后图像1');
subplot(3,4,4);mesh(H1);title('滤波器1三维图');
subplot(3,4,5);imshow(I11),title('原图像2');
subplot(3,4,6);imshow(H2);
subplot(3,4,7);imshow(OUT2);title('低通滤波后图像2');
subplot(3,4,8);mesh(H2);title('滤波器2三维图');
subplot(3,4,9);imshow(I111),title('原图像3');
subplot(3,4,10);imshow(H3);
subplot(3,4,11);imshow(OUT3);title('低通滤波后图像3');
subplot(3,4,12);mesh(H3);title('滤波器3三维图');
toc
%自定义函数
function H = low_f(M,N,n,D0)
u0 = M/2;
v0 = N/2;%中心点
for u = 1:M
    for v = 1:N
        D(u,v)= sqrt((v-v0)^2+(u-u0)^2);%各个点到中心点的距离
        H(u,v)=1/(1+(D(u,v)/D0)^(2*n));%传递函数
    end
end

3.3 巴特沃斯高通滤波

%% 高通滤波器的设计与实现
clear,clc,close ALL;
tic
I1 = imread('highpass/1.tif');
I11 = imread('highpass/2.tif');
[M1,N1] = size(I1);
[M11,N11] = size(I11);
F1 = fft2(I1,2*M1,2*N1);
F2 = fft2(I11,2*M11,2*N11);
Fshift1 = fftshift(F1);
Fshift2 = fftshift(F2);
H1 = high_f(2*M1,2*N1,2,50);
H2 = high_f(2*M11,2*N11,2,50);
G1 = H1.*Fshift1;
G2 = H2.*Fshift2;
Fi1 = ifftshift(G1);
Fi2 = ifftshift(G2);
Freal1 = real(ifft2(Fi1));
Freal2 = real(ifft2(Fi2));
Fint1 = uint8(Freal1);
Fint2 = uint8(Freal2);
OUT1 = Fint1(1:size(I1,1),1:size(I1,2));
OUT2 = Fint2(1:size(I11,1),1:size(I11,2));
figure,
subplot(2,4,1);imshow(I1),title('原图');
subplot(2,4,2);imshow(H1);
subplot(2,4,3);imshow(OUT1);title('高通滤波后');
subplot(2,4,4);mesh(H1);title('滤波器1三维图');
subplot(2,4,5);imshow(I11),title('原图');
subplot(2,4,6);imshow(H2);
subplot(2,4,7);imshow(OUT2);title('高通滤波后');
subplot(2,4,8);mesh(H2);title('滤波器2三维图');
toc
%高通滤波函数
function H = high_f(M,N,n,D0)
u0 = M/2;
v0 = N/2;
for u = 1:M
    for v = 1:N
        D(u,v)= sqrt((v-v0)^2+(u-u0)^2);
%         H(u,v)= 1-1/(1+(D(u,v)/D0)^(2*n));
        H(u,v)= 1/(1+(D0/D(u,v))^(2*n));
    end
end

4. 实验结果与分析

4.1 图像傅里叶变换及显示

1、实验原图与结果:

在这里插入图片描述

3、结果分析:

由上图,共图3.1(a)——图3.1(j)十幅图。其中(a)和(f)为两幅图像的原图。(b)和(g)分别为原图经灰度压缩后进行DFT的频谱图,©和(h)是对频谱进行fftshift中心化后的频谱图,(d)和(i)是经过ifftshift去中心化后的频谱图,最后的(e)和(j)是经过ifft2反变换的图像。
由图像,也可看出空域的平移对频域图像带来的拉伸效果。上述的傅里叶变换以及中心化处理和去中心化处理,简单地反应了频域处理的流程,为后续频域滤波奠定基础。

4.2 巴特沃斯低通滤波

1、实验结果

在这里插入图片描述

2、结果分析
本实验中,共对三幅图像进行低通滤波处理,图3.2(a),(e),(i)分别为三幅原图像。
图3.2(b)为对原图像1的低通滤波图,其定义阶数为5,参数为20;图3.2(f)为对原图像2的低通滤波图,其定义阶数为5,参数为50;图3.2(j)为对原图像3的低通滤波图,其定义阶数为5,参数为100。根据对参数数值大小的调整,可看出对整个巴特沃斯低通滤波函数的影响。根据试验分析可知:当参数取值越大时,滤波的“阻断”范围变大,即通过滤波的部分变大,致使低通滤波的效果较差,理论分析可知,当达到一定数值时,低通滤波基本不起作用。
观察图3.2©,(g),(k)三幅实验结果图,可观察到低通滤波效果。证明频域的低通滤波等效于空域的平滑滤波,起到模糊图像的作用。由图3.2©,可知低通滤波效果较好,使得图像整体较为模糊;由图3.2(g),可知随参数的增加,模糊的效果稍微降低了一些;由图3.2(k)可知较大时滤波效果较差。
观察图3.2(d),(h),(l)三幅实验结果图,反应滤波器的三维视图,体现了巴特沃斯低通滤波器的特性:①巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。②在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。③滤波器阶数越高,在阻频带振幅衰减速度越快。

4.3 巴特沃斯高通滤波

1、实验结果

在这里插入图片描述
2、结果分析
本实验中,共对两幅图像进行高通滤波处理,图3.3(a),(e)分别为两幅原图像。
图3.3(b)为对原图像1的低通滤波图,其定义阶数为2,参数为20;图3.3(f)为对原图像2的低通滤波图,其定义阶数为5,参数为50。根据对参数数值大小的调整,可看出对整个巴特沃斯高通滤波函数的影响。根据试验分析可知:当参数取值越大时,滤波的“阻断”范围变大,即通过滤波的部分变大,致使高通滤波的效果较差,当滤波范围增大时,整个图像基本均被“滤掉”,导致图像非常的“黑”。理论分析可知,当达到一定数值时,高通滤波基本不起作用。
观察图3.3©,(g)两幅实验结果图,可观察到高通滤波效果。证明频域的高通滤波等效于空域的锐化滤波,起到提取图像细节的作用。由图3.3©,可知高通滤波效果较好,使得图像的整体细节较为全面地展示出来。
观察图3.3(d),(h)两幅实验结果图,反应滤波器的三维视图,体现了巴特沃斯高通滤波器的特性。

4.4 扩展的必要性(缠绕现象)

1、扩展与否的对比
图一:

2、结果分析

由图可得,图3.4(a)为实验原图,(b)和©分别为不进行扩展处理和进行PQ扩展处理的结果图。由图可知,不进行扩展会导致缠绕现象发生,引起图像的边界处处理效果差,并没有合理实现滤波效果。因此,上述实验证明了扩展操作的必要性,证实了理论的正确性。

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值