数字图像处理-图像的频域处理

实验内容

1.求图像lena.bmp的幅度谱和相位谱,比较只由幅度谱信息和只由相位谱信息重构得到的图像差异。

clc,clear all;
f=im2double(imread('lena.bmp'));%读取图片
[M,N]=size(f);
figure;
subplot(2,3,1);
imshow(f);%幅度谱
title('lena.bmp');
 
F=fft2(f);%傅里叶变换
f1=fftshift(F);%对图像频谱进行移动,使0频率点在中心
fa=abs(f1);%获取幅度谱
subplot(2,3,2);
imshow(log(1+fa),[]);%幅度谱
title('lena.bmp的幅度谱');
 
fb=angle(f1);%获取相位谱
subplot(2,3,3);
imshow(fb,[]);%相位谱
title('lena.bmp的相位谱');
 
%重构只有幅度谱信息的图像
fa_only=real(ifft2(abs(F)));
subplot(2,3,5);
imshow(fa_only);%相位谱
title('重构只有幅度谱信息');
 
% 重构只有相位谱信息的图像
fb_only = real(ifft2(exp((1i) * angle(F))));
subplot(2,3,6);
imshow(fb_only,[]);%相位谱
title('重构只有相位谱信息');

实验结果:

只使用幅度谱重构图像:重构的图像将保留原始图像的亮度信息,但是会丢失所有关于边缘和纹理的细节。

只使用相位谱重构图像:重构的图像将保留原始图像的边缘和纹理信息,但是亮度和对比度丢失。

2.对图像Fig0413.tif进行频域的低通,比较ILPF、二阶BLPF、GLPF处理效果的差异。

clc,clear all;
F=im2double(imread('./FIg0413.tif'));
figure;
subplot(2,2,1);
imshow(F);
title('FIg0413.tif');
 
% 转换到频域
I=fft2(im2double(F));%傅里叶变换
 
%理想低通
[M,N]=size(F);%获取图像的宽度和高度
[U,V]=dftuv(M,N);%创建一个与图像F尺寸相同的频率响应矩阵,其中U和V分别是频率域中的水平和垂直坐标
D=hypot(U,V);%得到频率域中每个点到原点的距离
D0=30;%D0设置为30
h=(D<=D0);
G=I.*h;
low_filter=real(ifft2(G));%理想低通滤波
subplot(2,2,2);
imshow(low_filter);
title('理想低通滤波器ILPF');
 
%巴特沃斯低通
n=2; %巴特沃斯滤波器的阶数
h1=1./(1+(D./D0).^(2*n));%巴特沃斯滤波器公式
G1=I.*h1;
BLPF_filter=real(ifft2(G1));%巴特沃斯低通
subplot(2,2,3);
imshow(BLPF_filter);
title('2阶巴特沃斯低通滤波(二阶BLPF)');
 
%高斯低通
h2=exp(-0.5*D.^2/D0^2);
G2=I.*h2;
GLPF_filter=real(ifft2(G2));
subplot(2,2,4);
imshow(GLPF_filter);
title('高斯低通滤波GLPF')

实验结果:

ILPF处理:图像有振铃现象

二阶BLPF处理:没有明显的振铃现象,但是尾部含有高频成分(模糊减少)

GLPF处理:没有振铃现象,图像更加平滑,但是细节丢失

3.利用图像Fig0413.tif,分析BLPF阶次对图像处理效果的影响。

clc,clear;
F=im2double(imread('./Fig0413.tif'));
subplot(2,2,1);
imshow(F);
title('FIg0413.tif');
 
[M,N]=size(F);  %获取尺寸
[U,V]=dftuv(M,N);  % 创建频率响应矩阵 
D=hypot(U,V);
D0=30;
I=fft2(im2double(F));%傅里叶变换
 
% 二阶巴特沃斯低通滤波器
n0 = 2;  %巴特沃斯滤波器的阶数2阶
h1=1./(1+(D./D0).^(2*n0));
G1=I.*h1;
BLPF_filter_2=real(ifft2(G1));
subplot(2,2,2);
imshow(BLPF_filter_2);
title('阶次为2的巴特沃兹滤波器');
% 二十阶巴特沃斯低通滤波器
n1 = 20; 
h2=1./(1+(D./D0).^(2*n1));
G2=I.*h2;
BLPF_filter_20=real(ifft2(G2));
subplot(2,2,3);
imshow(BLPF_filter_20);
title('阶次为20的巴特沃兹滤波器');

% 绘制滤波器的频率响应曲线
BLPF_2= 1 ./ (1 + (U./D0).^(2*n0));%计算2阶巴特沃斯滤波器在频率域U上的频率响应
BLPF_20 = 1 ./ (1 + (U./D0).^(2*n1));%计算20阶巴特沃斯滤波器在频率域U上的频率响应
subplot(2,2,4);
plot(BLPF_2,'r'); % 绘制红色曲线
hold on;
grid on;
plot(BLPF_20,'b'); % 绘制蓝色曲线
axis([0 M/2 0 1]); % 设置坐标轴范围
xlabel('滤波器过渡带'); % 设置x轴标签
title('红色为n=2,蓝色为n=20');

实验结果:

二阶BPLF:振铃现象不明显,平滑度较低,图像边缘和细节保留较好

二十阶BPLF:振铃现象明显,过度平滑图像,导致图像细节丢失,过渡带较二阶BPLF更窄也更陡峭

4.用BLPF、BHPF对图像lena.bmp进行频域的低通和高通滤波,以显三维图形的形式直观显示BLPF和BHPF对各频率成分的增益,比较低通和高通滤波效果。

clc,clear;
F=im2double(imread('./lena.bmp'));
[M,N]=size(F);  %获取尺寸
 
I=fft2(F);%傅里叶变换
 
[U,V]=dftuv(M,N);% 创建频率响应矩阵   
D=hypot(U,V);
D0=30;
n = 2; 
 
figure;
% BLPF
H1 = 1 ./ (1 + (D./D0).^(2*n));
subplot(1,2,1);
mesh(U,V,H1);%绘制三维曲面图
title('巴特沃斯低通滤波器三维图像');
 
%BHPF
H2 = 1 ./ (1 + (D0./D).^(2*n));
subplot(1,2,2);
mesh(U,V,H2);%绘制三维曲面图
title('巴特沃斯高通滤波器三维图像');
 
figure;
subplot(1,3,1);
imshow(F);
title('lena.bmp');
 
% BLPF
G1=I.*H1;
BLPF_filter=real(ifft2(G1));
subplot(1,3,2);
imshow(BLPF_filter);
title('巴特沃斯低通滤波');
 
%BHPF
G2=I.*H2;
BHPF_filter=real(ifft2(G2));
subplot(1,3,3),
imshow(BHPF_filter);
title('巴特沃斯高通滤波');

实验结果:

BLPF处理:图像更加平滑,细节减少。图像的高频细节(边缘和纹理)被削弱,而低频信息(平滑区域和整体亮度)被保留。

BHPF处理:图像更加强调细节,突出细节。图像的低频信息被去除,只保留了高频细节(边缘和纹理)。

低频成分提供了图像的总体和平滑信息,高频成分提供了图像的局部细节和变化信息

实验总结

  1. 幅度谱主要负责图像的亮度信息,而相位谱则包含了图像的边缘和纹理信息。
  2. ILPF没有过渡带,频域滤波效果最好,但会产生振铃现象。GLPF没有振铃现象,但不能控制滤波器的过渡带陡峭程度。BLPF可以通过阶次控制过渡带的陡峭程度,阶次越高,过渡带越窄,频域选择特性越好,但阶次越高振铃副作用越明显。
  3. 当巴特沃斯滤波器的阶数增加时,过渡带变窄,振铃现象可能会变得更加明显。较低阶的BLPF在平滑图像的同时,能够更好地保留图像的细节。随着阶数的增加,图像细节会丢失。
  4. 使用mesh函数可以创建一个三维图形,对于BLPF,增益在频率域中心(低频区域)较高,在远离中心(高频区域)逐渐降低,形成一个平滑的减幅效果。对于BHPF,增益在频率域中心较低,在边缘(高频区域)较高。这表明高通滤波器允许高频成分通过,而抑制低频成分。
  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值