维纳滤波 订阅
维纳滤波器(wiener filtering) 的本质是使估计误差(定义为期望响应与滤波器实际输出之差)均方值最小化。 [1]  离散时间维纳滤波理论是从维纳关于连续时间信号的线性最优滤波器这个开拓性工作演变过来的。维纳滤波器的重要性在于,它为广义平稳随机信号的线性滤波提供了一个参考框架。 [1] 展开全文
维纳滤波器(wiener filtering) 的本质是使估计误差(定义为期望响应与滤波器实际输出之差)均方值最小化。 [1]  离散时间维纳滤波理论是从维纳关于连续时间信号的线性最优滤波器这个开拓性工作演变过来的。维纳滤波器的重要性在于,它为广义平稳随机信号的线性滤波提供了一个参考框架。 [1]
信息
属    于
线性滤波 [1]
本    质
估计误差均方值最小化 [1]
应用学科
通信 [1]
中文名
维纳滤波器 [1]
外文名
wiener filtering [1]
要    求
输入过程是广义平稳的 [1]
维纳滤波基本原理
维纳滤波由N.Wiener于1942年,基于最小均方误差准则下提出的最佳线性滤波方法,但是去噪的效果不太好。 [2]  在自适应滤波中,最广泛采用的目标函数之一是均方误差(MSE),其定义为 [3]  输出信号是由来自于阵列的信号的线性组合构成的, [3]  其中, 分别是输入信号和自适应滤波器系数向量。 [3]  在线性组合器和FIR滤波器情形下,目标函数可以写为, [3]  对于具有固定系数的滤波器而言,MSE函数为, [3]  其中, 为期望信号与输入信号之间的互相关向量,且 为输入信号的相关矩阵。 [3] 
收起全文
精华内容
下载资源
问答
  • 维纳滤波维纳滤波维纳滤波维纳滤波维纳滤波维纳滤波
  • 维纳滤波

    万次阅读 2018-09-29 12:19:52
    上一节讲了逆滤波,这一次讲讲维纳滤波,逆滤波在图像没有噪声的情况下是很好的,但在有噪声的情况下,噪声会被放大,所以维纳滤波就横空出世了,维纳滤波能很好的解决有噪声的图像修复。 维纳滤波是诺波特·维纳在...

    上一节讲了逆滤波,这一次讲讲维纳滤波,逆滤波在图像没有噪声的情况下是很好的,但在有噪声的情况下,噪声会被放大,所以维纳滤波就横空出世了,维纳滤波能很好的解决有噪声的图像修复。
    维纳滤波是诺波特·维纳在二十世纪四十年代提出的一种滤波器,即假定线性滤波器的输入为有用信号和噪声之和,两者均为广义平稳过程且知道它们的二阶统计特性,根据最小军方误差准则(滤波器的输出信号与需要信号之差的均方值最小),求得最佳线性滤波器的参数。
    维纳滤波器是一种自适应最小均方差滤波器。维纳滤波的方法是一种统计方法,它用的最优准则是基于图像和噪声各自的相关矩阵,它能根据图像的局部方差调整滤波器的输出,局部方差最大,滤波器的平滑作用就越强。
    公式如下:
    在这里插入图片描述
    其中戴帽子的f为我们维纳滤波后的图像,f为清晰的原始图像,g为待恢复的模糊图像(g上式没有,写出来为了说明的完整性)。
    这里戴帽子的f我们是不知道的,所以我们要根据这个优化式子求出f^\hat{f}.
    具体的推导过程这里不写,因为我也只看了个大概。
    求解的结果为:
    在这里插入图片描述
    其中,G(u,v)是退化图形的傅里叶变换;
    H(u,v)是退化函数;
    pn(u,v)=N(u,v)2p_n(u,v)=|N(u,v)|^2是噪声的功率谱;
    Pf(u,v)=F(u,v)2P_f(u,v)=|F(u,v)|^2是原始图像的功率谱;
    s=1λs=\frac{1}{λ},λ为一常数,是拉格朗日乘数。

    之前有说过维纳滤波需要知道原始图像和噪声的二阶统计特性,即要知道关于图像和噪声的先验知识,比如pf(u,v),pn(u,v)p_f(u,v),p_n(u,v),但是这恰恰也是我们不知道的,这也是维纳滤波器的局限所在,我们一般将上述两个公式的比值看做是常数带入进行计算,如下所示:
    在这里插入图片描述
    这是一种无可奈何的粗糙的近似,但是当噪声为白噪声即其功率谱为常数的时候,这种近似效果很不错。
    为了强化维纳滤波器的效果“基于维纳滤波的图像复原”这篇论文提出了两次维纳滤波的方法,第一次维纳滤波求出一个近似图像,然后由近似图像的和模糊图像估计噪声和原始图像的先验知识,最后根据该先验知识进行再次的维纳滤波。
    “Lucy - Richardson 与维纳滤波算法比较分析”,这篇文章指出在先加模糊函数在加噪声的情况下,维纳滤波的表现比LR滤波器的表现更为良好。

    在“维纳滤波图像复原技术的研究与改进”这篇文章中,作者指出,维纳算法可实现最小均方差复原,当图像的频率特性和噪声已知时,维纳滤波的效果较好;在峰值信噪较低时效果不好。这时由于三个问题限制了它的有效性。首先维纳滤波采用均方误差(MSE)准则,该准则对所有的误差(不管其在图像中的位置)都赋予同样的权,而人眼对暗处和高梯度区域的误差比其他区域的误差有较大的容忍性,所以,维纳滤波以一种并非适合人眼的方式对图像进行了平滑(第一个公式即求均方误差最小);其次,维纳滤波假设退化模型为线型空间不变系统,它不能处理具有空间可变点扩散函数的情形(比如物体运动不是匀速或者匀加速);最后,由于基于平稳随机场的模型,维纳滤波 不能处理有着非平稳信号和噪声的一般情形,大部分图像都是高度非平稳的,有着陡峭边缘分开的大块平坦区域(对非平稳过程而言,均值和方差是无法通过统计得到的,因为它们会随时间而变化)。

    参考文献:
    Lucy - Richardson 与维纳滤波算法比较分析
    维纳滤波图像复原技术的研究与改进

    最后推荐一篇非常不错的维纳滤波的博文:https://blog.csdn.net/baimafujinji/article/details/73882265

    展开全文
  • Matlab维纳滤波理论及求解方法-(中文)第一章 维纳滤波.rar 附件中包含了维纳滤波理论及求解方法,有实例, 维纳滤波是实现最小均方差的经典滤波理论, 附件为ppt格式。有需要的下!
  • MATLAB程序分享实现图像中值均值维纳滤波源程序代码-MATLAB实现图像中值 均值 维纳滤波 源程序代码.rar 程序代码见附件,拿资料请顺便顶个贴~~ 如果下载有问题,请加我 qq 1530497909,给你在线传
  • 详细的介绍了维纳滤波的应用和研究,对于掌握维纳滤波很有用哦,快点下载吧
  • 维纳滤波,应用很广泛,这里是一些基于维纳滤波的应用
  • 在图像复原应用中,在含有噪声的情况下进行简单的逆滤波会带来很大的失真,最常见的滤波方法就是维纳滤波。在频率域中做滤波的话,根据表达式:F(u,v)为滤波后清晰图像的傅里叶频谱图像,H(u,v)为模糊核频谱图像,G...

    在图像复原应用中,在含有噪声的情况下进行简单的逆滤波会带来很大的失真,最常见的滤波方法就是维纳滤波。

    在频率域中做滤波的话,根据表达式:

    042708756e3a792332ad92701c6c25ad.png

    F(u,v)为滤波后清晰图像的傅里叶频谱图像,H(u,v)为模糊核频谱图像,G(u,v)为模糊图像频谱图像。

    理解该公式有一点要求,就是上述三个频谱图像矩阵的维度必须一致,其实也就是模糊核和模糊图像一致就可以。计算时,取相对应位置上的值出来进行计算既可以,假设维度为300*400,也就是说要进行120000次该公式的计算就可以求出清晰图像频谱图,且这120000次计算之间相互独立不干扰,这点是很重要的,120000次计算可以并行执行,为计算提速带来了极大方便。

    但是涉及具体计算时,我个人觉得存在一个问题,就是按照一般理解,模糊核比起图像来说是相对较小的,同时图像的傅里叶变换得到的频谱图像的大小是跟原始图像一样的,所以这里的H(u,v)和G(u,v)照理说是不同维数的,但是要能计算必须变成相同的维数。

    这里理论上我不知道该怎么办。但是翻看matlab中deconvwnr.m发现代码中使用了psf2otf函数,将我们的点扩散函数变成了光传播函数(optical transfer function,otf),这个函数可以将otf变为你指定的大小。在后面的计算中就用这个作为模糊核的频谱图进行计算。

    摘自百度百科的一句话:点扩展函数是一点光源经光学系统后所成的衍射斑分布的函数。它在空域表征光学系统的特性,传递函数在频域表征系统的特性。实际上两者有简单关系,即点扩展函数的傅里叶变换就是光学系统的传递函数。

    但这里就存在一个疑问,我用matlab对相同的一个psf做fft和psf2otf,第一个得到的是一个复数矩阵,第二个得到的是一个实数矩阵。

    展开全文
  • 维纳滤波.docx

    2019-10-30 10:08:31
    讲述的关于维纳滤波的在图像中的运用,同时还介绍了关于维纳滤波原理,并最后给出了不同的图例来论证维纳滤波的效果
  • 我试着用维纳滤波来消除离焦图像的模糊。我的申请纯粹是学术性的,所以我不需要一个完美的结果。但是,我遇到了一些奇怪的问题,我不确定我是否正确地做了事情。在首先,我安装了一个照相机,拍了两组图像。第一组...

    我试着用维纳滤波来消除离焦图像的模糊。我的申请纯粹是学术性的,所以我不需要一个完美的结果。但是,我遇到了一些奇怪的问题,我不确定我是否正确地做了事情。在

    首先,我安装了一个照相机,拍了两组图像。第一组图像对焦。我首先在一个完全黑暗的房间里拍了一张非常小的LED的照片。然后我把一张纸直接放在LED前面(现在它已经关闭),用闪光灯拍了一张照片。现在我把相机的焦距散焦,以同样的方式拍摄了另一组图像。在

    我的理解是,离焦点光源的照片是一个实验测量的点扩散函数。因此,我认为使用逆滤波可以很容易地对失焦图像进行去模糊处理。好吧,事实证明这并不是那么容易(见前面的post)。所以现在我正在尝试实现一个维纳过滤器,我没有太多的运气。这是我目前为止的计划。我设置了两个滑块来更改kernel_size和{}的值,而不必重新运行程序。在import numpy as np

    import matplotlib.pyplot as plt

    import ipywidgets as widgets

    import cv2

    kernel_size = 5

    restoration_parameter = 1

    # Read in images: out-of-focus, in-focus, and experimental point spread function

    img = cv2.imread('pictures/out_of_focus.jpg')

    blur = img[:,:,0]

    img2 = cv2.imread('pictures/in_focus.jpg')

    clean = img2[:,:,0]

    img = cv2.imread('pictures/PSF.jpg')

    psf1 = img[:,:,0]

    psf2 = np.ones((kernel_size, kernel_size)) / kernel_size**2 # A square kernal

    psf = psf2 # set psf to be either psf1 (experimental point spread function) or psf2 (square kernal)

    deconvolved_img = restoration.wiener(blur, psf, restoration_parameter, clip=False)

    fig = plt.figure()

    ax = plt.subplot(111)

    new_image = ax.imshow(deconvolved_img)

    plt.gray()

    plt.show()

    def update(kernel_size, restoration_parameter):

    psf2 = np.ones((kernel_size, kernel_size)) / kernel_size**2

    psf = psf2 # set psf to be either psf1

    deconvolved_img = restoration.wiener(blur, psf, restoration_parameter, clip=False)

    new_image.set_data(deconvolved_img)

    ax.set_title(r'kernel size = %2.0f, restoration parameter =%2.5f' % (kernel_size, restoration_parameter))

    return

    widgets.interact(update, restoration_parameter=widgets.FloatSlider(min=0,max=100,step=0.1,value=epsilon,description=r'Res. Par.'),

    kernel_size=widgets.IntSlider(min=0,max=40,step=1,value=kernel_size,description=r'kernel size'))

    如果psf设置为psf1,程序将使用实验测量的点扩展函数。在本例中,不使用kernel_size参数。令我惊讶的是,这张未模糊的图像看起来就像噪音,没有任何我期望看到的图像。这让我很困惑,因为我认为这是我正在处理的系统的一个实验性的点扩散函数,因此应该是一个很好的起点。显然,我一定是搞错了(我也错认为反滤波是可行的)。如果有人能向我解释为什么这根本不起作用,我将不胜感激。在

    如果psf设置为psf2,则程序使用大小为kernel_size的正方形内核。在这种情况下,去模糊的图像确实像我所期望的那样,但是最终的图像仍然是完全模糊的,没有一组参数似乎有帮助。我想我并不惊讶于这种方法不能很好地工作,因为这里的点扩散函数似乎不是一个很好的近似值。但我很惊讶,它比用实验测量的点扩散函数工作得更好。这让我觉得我可能做错了什么。在

    不管怎样,我希望有人能告诉我我做错了什么(如果有的话),并为我指明一个可能会带来成功的方向。顺便说一下,虽然我有对焦图像作为参考,但我不想在计算中使用它。我试图演示一个真实的场景,在这个场景中,你可能拍摄了一张失焦的照片,而你想在没有进入对焦照片的情况下修复它。在

    阿特瓦安克塞

    如果有帮助的话,这里有离焦图像(文本)和离焦LED(我相信这是一个实验性的点扩散功能)。在

    yrTNI.jpg

    X1tYI.jpg

    展开全文
  • 卡尔曼维纳滤波程序

    2017-11-17 22:19:45
    里面包含了卡尔曼滤波程序,一维维纳滤波程序,二维维纳滤波程序,供大家学习参考
  • 维纳滤波程序

    2018-08-03 21:20:46
    可以对图片进行维纳滤波处理,可以用经验值或者二次滤波,效果不错。
  • 清华大学现代信号处理自己做的课程设计,绝对可以运行,大家放心,主要内容为维纳滤波以及卡尔曼滤波,维纳滤波是基于FIR进行设计的,卡尔曼滤波是基于2阶运动模型的状态方程进行设计的,直接运行Project1.m文件即可...
  • 维纳滤波应用

    2018-12-12 18:28:03
    维纳滤波处理一个带噪声的音频信号,可以很好地将噪声滤除。
  • 维纳滤波代码

    2014-05-19 20:15:51
    数字图像处理实验中维纳滤波代码,了解如何使用维纳滤波对噪声图像进行降噪处理
  • 5.3 维纳滤波法.zip

    2021-04-02 19:20:44
    维纳滤波降噪
  • 压缩包里面有6个.m文件, blurring.m用于给图像增加抖动效果 inverseFilter.m是不考虑噪声的逆滤波 inverseFilterWithNoise.m是考虑噪声的逆滤波 wienerFiltering.m是维纳滤波 另外两个是辅助函数
  • matlab维纳滤波

    2017-10-14 16:28:22
    圆形轨迹加入噪声之后,将圆形轨迹分解为二个方向进行维纳滤波
  • 维纳滤波图像去噪

    2015-05-04 22:38:31
    维纳滤波图像去噪,程序用了维纳滤波去除图像里的噪声。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,144
精华内容 457
关键字:

维纳滤波