《精通Matlab数字图像处理与识别》一6.7 Matlab综合案例——利用频域滤波消除周期噪声

简介:

本节书摘来自异步社区《精通Matlab数字图像处理与识别》一书中的第6章,第6.7节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.7 Matlab综合案例——利用频域滤波消除周期噪声

精通Matlab数字图像处理与识别
6.5~6.6节介绍了几种典型的频域滤波器,实现了频域下的低通和高通滤波,它们均可在空域下采用平滑和锐化算子实现。而本节准备给出一个特别适合在频域中完成的滤波案例,即利用频域带阻滤波器消除图像中的周期噪声。下面就来看一下这个在空域中几乎不可能完成的任务是如何在频域中实现的。

6.7.1 频域带阻滤波器

顾名思义,所谓“带阻”就是阻止频谱中某一频带范围的分量通过,其他频率成份则不受影响。常见的带阻滤波器有理想带阻滤波器和高斯带阻滤波器。

1.理想带阻滤波器
理想带阻滤波器的表达式为

image

式中:D 0是阻塞频带中心频率到频率原点的距离;W是阻塞频带宽度;D是(u,v)点到频率原点的距离。于是,理想带阻滤波器的频域特性曲面如图6.28所示。

image

2.高斯带阻滤波器
本案例中使用了高斯带阻滤波器,下面直接给出高斯带阻滤波器的表达式。

image

式中:D 0是阻塞频带中心频率到频率原点的距离;W是阻塞频带宽度;D是(u,v)点到频率原点的距离。于是,二维高斯带阻滤波器的频域特性曲面如图6.29所示。
image

3.高斯带阻滤波器的Matlab实现
根据高斯带阻滤波器的定义式(6-60),可以编写高斯带阻滤波器的生成函数如下,该函数被封装在金羽图书论坛(http://bbs.book95.com)的“金羽图书与答疑”板块与本书同名的主题帖子附件的“chapter6/code”目录下的imgaussfbrf.m文件中。

function out = imgaussfbrf(I, freq, width)
% imgaussfbrf函数   构造频域高斯带阻滤波器
% I参数    输入的灰度图像
% freq参数    阻带中心频率
% width参数   阻带宽度

[M,N] = size(I);
out = ones(M,N);
for i=1∶M
    for j=1∶N
        out(i,j) = 1-exp(-0.5*((((i-M/2)^2+(j-N/2)^2)-freq^2)/(sqrt(i.^2+j.^2)*width))^2);
    end
end

6.7.2 带阻滤波消除周期噪声

带阻滤波器常用于处理含有周期性噪声的图像。周期性噪声可能由多种因素引入,例如图像获取系统中的电子元件等。本案例中我们人为地生成了一幅带有周期噪声的图像,而后通过观察分析其频谱特征,选择了合适的高斯带阻滤波器进行频域滤波。

1.得到周期噪声图像
通常可以使用正弦平面波来描绘周期性噪声。如下程序为Matlab示例图片pout.tif增加周期性噪声。

O = imread('pout.tif'); %读入原图像
[M,N] = size(O);
I = O;
for i=1:M
for j=1:N
  I(i,j)=I(i,j)+20*sin(20*i)+20*sin(20*j); %添加周期噪声
end
end

subplot(1,2,1);
imshow(O);
title('Source');

subplot(1,2,2);
imshow(I);
title('Added Noise');

添加周期性噪声前后的区别如图6.30所示。

2.频谱分析
使用高斯带阻滤波器时,首先需要对欲处理的图像的频谱有一个了解。下面的命令得到了两幅图像的频谱。

i_f=fft2(I);
i_f=fftshift(i_f);
i_f=abs(i_f);
i_f=log(1+i_f);

o_f=fft2(O);
o_f=fftshift(o_f);
o_f=abs(o_f);
o_f=log(1+o_f);

figure(1);
imshow(o_f, [ ]); %得到图6.31(a)
title('Source');

figure(2);
imshow(i_f, [ ]); %得到图6.31(b)
title('Added Noise');

image

程序的运行结果如图6.31所示。

image

image

3.带阻滤波
观察图6.31(b),发现周期性图像的傅立叶频谱中出现了两对相对于坐标轴对称的亮点,它们分别对应于图像中水平和竖直方向的正弦噪声。我们构造高斯带阻滤波器的时候就需要考虑尽可能滤除具有这些亮点对应的频率的正弦噪声。注意到这4个点位于以频谱原点为中心,以50为半径的圆周上。因此,设置带阻滤波器中心频率为50,频带宽度为5,如图6.31(c)所示,滤波后的频域效果如图6.31(d)所示。

相应的程序如下。

ff = imgaussfbrf(I, 50, 5); %构造高斯带阻滤波器
figure, imshow(ff, []); %得到图6.31(c)

out = imfreqfilt(I, ff); %带阻滤波
figure, imshow(out, []); %得到图6.31(d)

subplot(1,2,1);
imshow(I);
title('Source');

subplot(1,2,2);
imshow(out);
title('Gauss Filter');

上述程序运行后得到的高斯带阻滤波器最终滤波效果如图6.32所示,我们看到周期噪声被很好地消除,这样的效果在空域中是很难实现的。

image

相关文章
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
|
6月前
|
Windows
基于MATLAB实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道
本文通过MATLAB仿真实现了OFDM系统中BPSK、QPSK、4QAM、16QAM和32QAM调制解调过程,并在加性高斯白噪声信道及TDL瑞利衰落信道下计算了不同信噪比条件下的误比特率。
374 4
基于MATLAB实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道
|
7月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络的步态识别matlab仿真,数据库采用CASIA库
**核心程序**: 完整版代码附中文注释,确保清晰理解。 **理论概述**: 利用CNN从视频中学习步态时空特征。 **系统框架**: 1. 数据预处理 2. CNN特征提取 3. 构建CNN模型 4. 训练与优化 5. 识别测试 **CNN原理**: 卷积、池化、激活功能强大特征学习。 **CASIA数据库**: 高质量数据集促进模型鲁棒性。 **结论**: CNN驱动的步态识别展现高精度,潜力巨大,适用于监控和安全领域。
|
7月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MQAM调制识别matlab仿真
**理论**: 利用CNN自动识别MQAM调制信号,通过学习星座图特征区分16QAM, 64QAM等。CNN从原始数据提取高级特征,优于传统方法。 - **CNN结构**: 自动特征学习机制,适配多种MQAM类型。 - **优化**: 损失函数指导网络参数调整,提升识别准确度。 - **流程**: 大量样本训练+独立测试评估,确保模型泛化能力。 - **展望**: CNN强化无线通信信号处理,未来应用前景广阔。
|
7月前
|
机器学习/深度学习 算法 BI
基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真
**摘要:** 本文介绍了使用MATLAB2022a实现的基于GoogLeNet的USB摄像头手势识别系统。系统通过摄像头捕获视频,利用深度学习的卷积神经网络进行手势检测与识别。GoogLeNet网络的Inception模块优化了计算效率,避免过拟合。手势检测涉及RPN生成候选框,送入网络进行分类。系统架构包括视频采集、手势检测与识别、以及决策反馈。通过GPU加速和模型优化保证实时性能,应用于智能家居等场景。
|
8月前
|
算法
m基于GA遗传优化的高斯白噪声信道SNR估计算法matlab仿真
**MATLAB2022a模拟展示了遗传算法在AWGN信道中估计SNR的效能。该算法利用生物进化原理全局寻优,解决通信系统中复杂环境下的SNR估计问题。核心代码执行多代选择、重组和突变操作,逐步优化SNR估计。结果以图形形式对比了真实SNR与估计值,并显示了均方根误差(RMSE),体现了算法的准确性。**
91 0
|
8月前
|
机器学习/深度学习 算法 数据可视化
基于googlenet深度学习网络的睁眼闭眼识别算法matlab仿真
**算法预览图展示睁眼闭眼识别效果;使用Matlab2022a,基于GoogLeNet的CNN模型,对图像进行分类预测并可视化。核心代码包括图像分类及随机样本显示。理论概述中,GoogLeNet以高效Inception模块实现眼部状态的深度学习识别,确保准确性与计算效率。附带三张相关图像。**
|
9月前
|
算法 数据安全/隐私保护
matlab程序,傅里叶变换,频域数据,补零与不补零傅里叶变换
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
9月前
|
数据安全/隐私保护
时域与频域数据互相转换,傅里叶变换与逆傅里叶变换,matlab程序,时域转频域
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混沌集成决策树的电能质量复合扰动识别(matlab代码)
基于混沌集成决策树的电能质量复合扰动识别(matlab代码)

热门文章

最新文章