统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

这篇具有很好参考价值的文章主要介绍了统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 使用维纳滤波对噪声图像恢复

  1. 题目及滤波图像恢复简介

  1. 题目

将维纳滤波应用于图像恢复,假设退化图像为一加性高斯白噪声污染的图像,试用逆滤波方法和维纳滤波方法恢复图像,并比较其效果;查阅文献,尝试使用迭代维纳滤波的方法进一步提高效果,注意构建正确的修正项。

  1. 逆滤波用于图像恢复简介

逆滤波法是一种从添加了噪声的图像中恢复原始图像的技术,它的基本思想是使用滤波器和滤波器的逆滤波器。在这种方法中,首先用一个适当的滤波器(如维纳滤波器)对污染图像进行滤波,然后再使用该滤波器的逆滤波器对滤波后的图像进行滤波,从而恢复出原始图像。由于在滤波器的逆滤波器中,噪声的影响会被抵消,因此可以有效地恢复原始图像。

  1. 维纳滤波用于图像恢复简介

维纳滤波是一种基于信号模型的迭代滤波算法,它假设信号为有噪声的线性系统动态响应和加性高斯噪声的组合。维纳滤波的基本思想是,首先估计信号和噪声的模型参数,然后根据模型参数来构造滤波器,最后使用滤波器消除噪声。

维纳滤波可以对噪声图像进行恢复,因为它可以根据信号和噪声的模型参数构造滤波器,然后通过滤波器消除噪声,从而恢复噪声图像。

  1. 逆滤波与维纳滤波的原理

  1. 逆滤波的原理

一般来说,图像的退化模型可以表示为

统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

其中,g(x,y) 表示退化后的图像,h(x,y)为点扩散函数,f(x,y) 为原始图像,n(x,y) 为引入的噪声。在频域上面可以表示为

统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

将其变换到频域可以得到

统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

所以

统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

将其进行傅里叶反变换可以得到复原图像。

  1. 维纳滤波的原理

维纳滤波是另外一种比较常见的图像复原方法,计算复杂度相对较小并且考虑了噪声的影响。通常情况下,假设图像和噪声是相互独立的且至少存在一个均值为零,恢复图像和模糊图像两者的灰度级呈线性关系时,维纳滤波可表示为

统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

其中,Sn(u,v)为噪声功率谱,Sf(u,v)为原图像功率谱。

  1. Matlab仿真结果

  1. 逆滤波仿真结果

统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

由上图可见,原始图像是一幅极光景色且无肉眼可见噪声,经过加入高斯白噪声后,图像中出现了随机位置的细小的白点,经过逆滤波恢复后,图像中的噪点明显减少,但同时也会过滤掉原始图像的与噪点类似的星星。

  1. 维纳滤波仿真结果

统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

经过维纳滤波恢复后,图像中的噪点明显减少,但是与逆滤波不同,维纳滤波后的图像中的星星并没有被认为是噪点而完全滤除。

  1. 迭代维纳滤波仿真结果

统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码

如上图所示,迭代维纳滤波对于图像恢复有着很好的效果,能够滤除大部分的噪点。经过数次迭代后,图像已经恢复的很好。迭代次数达到一定上限后,效果则变化不明显。

代码文章来源地址https://www.toymoban.com/news/detail-446825.html

% Load image
img = imread('C:\Users\songy\OneDrive\Pictures\sample.png');
% Convert to grayscale
img_gray = rgb2gray(img);
% Add Gaussian white noise
noisy_img = imnoise(img_gray, 'gaussian', 0, 0.01);
% Perform Wiener filtering
filtered_img = wiener2(noisy_img, [5 5]);
% Display the filtered image
subplot(1,3,1)
imshow(img_gray)
title('原图')
subplot(1,3,2)
imshow(noisy_img)
title('加入高斯白噪声的图像')
subplot(1,3,3)
imshow(filtered_img)
title('维纳滤波后的图像')

%迭代部分,单独执行
img1=wiener2(noisy_img, [5 5]);
img2=wiener2(img1, [5 5]);
img3=wiener2(img2, [5 5]);
img4=wiener2(img3, [5 5]);
subplot(2,2,1)
imshow(noisy_img)
title('带噪声图')
subplot(2,2,2)
imshow(img1)
title('第一次迭代')
subplot(2,2,3)
imshow(img2)
title('第二次迭代')
subplot(2,2,4)
imshow(img3)
title('第三次迭代')
%% 加载图像
I=imread('C:\Users\songy\OneDrive\Pictures\sample.png');
%% 生成维纳滤波器
% Convert to grayscale
img_gray = rgb2gray(I);
% Add Gaussian white noise
noisy_img = imnoise(img_gray, 'gaussian', 0, 0.01);
N=5; % 维纳滤波器大小
sigma=2; % 标准差
h=fspecial('gaussian',N,sigma);
%% 逆滤波处理
J=imfilter(noisy_img,h,'symmetric');
%% 显示结果
figure;
subplot(1,3,1);
imshow(img_gray);
title('原始图像');
subplot(1,3,2);
imshow(noisy_img);
title('加入高斯白噪声');
subplot(1,3,3);
imshow(J);
title('逆滤波恢复后的图像');

到了这里,关于统计信号处理-使用维纳滤波和逆滤波对图像进行恢复-matlab仿真-附代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数字信号处理课程设计】基于MATLAB实现语音信号的采集与处理(偏重滤波)

    目录 一、目标与任务 二、原理介绍 2.1 录音原理 2.2 滤波器的设计原理及设计方法 2.3 IIR 数字滤波器设计原理 2.4 双线性变换法 三、GUI界面设计与实现 四、基于MATLAB仿真 4.1实验过程 4.2 结果分析 五、总结 5.1 函数用法总结 5.2 心得体会 六、参考文献 这个项目在我的B站上有专

    2024年01月18日
    浏览(57)
  • 现代信号处理——随机信号的统计描述

    一、信号的分类 确定性信号:能够以确定的时间函数表示的信号,信号在任何时刻的取值都是固定的,信号的取值都是可以通过表达式算出来的。 随机信号:称为不确定信号或随机过程,不是时间的确定函数,没有确定的表达式,只能通过观察去得到它的样本。 例如,观察

    2023年04月10日
    浏览(40)
  • 现代信号处理——自适应滤波器(匹配滤波器)

    信号处理的目的是从噪声中提取信号,得到不受干扰影响的真正信号。采用的处理系统称为滤波器。 实时信号处理中,希望滤波器的参数可以根据系统或环境的变化进行更新,称为自适应滤波器。 滤波器的分类: 线性滤波器、非线性滤波器; FIR滤波器、IIR滤波器; 时域滤

    2023年04月27日
    浏览(70)
  • 图像构成与信号处理之三——图像滤波

    图像滤波是一种常见的图像处理技术,用于平滑图像,去除噪声和边缘检测等任务。其工作的原理是通过提前设定 滤波器 ,将滤波器作用与原图像,得到拥有需要的滤波效果的图像。 一般图像滤波分为 平滑类:均值滤波 ; 去噪类:中值滤波 ; 突出边缘:双边滤波 ;等。

    2024年03月17日
    浏览(81)
  • 现代信号处理——自适应滤波器(LMS自适应滤波器)

    一、自适应滤波简介 维纳滤波存在的问题: 适用于平稳随机信号的最佳滤波,对于非平稳的随机信号,其统计特性(相关函数)是随机的,因此无法估计其相关函数,此时的维纳滤波不适用; 维纳滤波器的参数是固定的,就不可能根据输入信号的变换去自动调整滤波器的参

    2024年02月01日
    浏览(50)
  • 【数字信号处理2】IIR 滤波器设计

    1.掌握冲激响应法和双线性变换法设计IIR滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通、带通和高通IIR数字滤波器的计算机程序; 2.熟悉模拟Butterworth滤波器的设计,掌握冲激响应法和双线性变换法设计数字IIR滤波器的方法。 1、不同阶次模拟巴特沃兹滤波器的

    2024年02月05日
    浏览(50)
  • 【Matlab】音频信号谱分析及椭圆滤波处理

    一个使用matlab对音频信号进行频谱分析及滤波处理的学习笔记,本文使用的是椭圆滤波器。 音频下载 demo.mp3 读取音频信号进行傅里叶变换 结果如下 在谱分析中使用matlab自带的快速傅里叶变换函数进行变换 在IIR滤波器设计中使用椭圆低通滤波器 椭圆滤波器使用 入门级教程

    2024年02月12日
    浏览(43)
  • 信号处理之FIR数字滤波器(Matlab仿真)

            数字滤波器的作用是滤除不感兴趣的信号,留下想要的信号。数字滤波器可分为无限脉冲响应(IIR)数字滤波器、有限脉冲响应(FIR)数字滤波器两种,两者各有优缺点,其中FIR数字滤波器因其具有良好的线性相位特性受到广泛应用,线性相位是指信号中各频率成分的相对

    2024年02月03日
    浏览(52)
  • 【matalab】基于Octave的信号处理与滤波分析案例

    GNU Octave是一款开源软件,类似于MATLAB,广泛用于数值计算和信号处理。 一个简单的信号处理与滤波分析案例,说明如何在Octave中生成一个有噪声的信号,并设计一个滤波器来去除噪声。 首先,确保安装了Octave。可以从Octave官网下载并安装:GNU Octave 案例步骤如下: 1. 生成一

    2024年02月19日
    浏览(37)
  • 数字信号处理实验:数字滤波器的设计与应用

    一. 实验目的         1.掌握模拟滤波器的设计方法,以及脉冲响应不变法和双线性变换法设计IIR数字滤波 器的方法,针对实际信号能设计相应的 IIR 数字滤波器,并按要求进行滤波。         2.掌握用窗函数法设计FIR数字滤波器的方法,并通过实验了解各种窗函数对滤

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包