图像处理之维纳滤波还原图像、直方图均值化【附代码、亲测有效】

一、基础知识

维纳滤波(wiener filtering) 一种基于最小均方误差准则、对平稳过程的最优估计器。这种滤波器的输出与期望输出之间的均方误差为最小,因此,它是一个最佳滤波系统。它可用于提取被平稳噪声污染的信号。从连续的(或离散的)输入数据中滤除噪声和干扰以提取有用信息的过程称为滤波,这是信号处理中经常采用的主要方法之一,具有十分重要的应用价值,而相应的装置称为滤波器。根据滤波器的输出是否为输入的线性函数,可将它分为线性滤波器和非线性滤波器两种。维纳滤波器是一种线性滤波器。

算法原理:
(1)首先假设点扩散函数为高斯模型 ,加性白噪声为高斯噪声 ,理想的未退化的图像为 ,那么退化图像可表示为 ,要想恢复出理想图像,就要估计点扩散函数 和加性白噪声 ;
(2)为了更好地估计叠加有白噪声的高斯模糊图像的点扩展函数,可以先对图像进行去噪处理。因此我们采用均值滤波对退化图像进行去噪;
(3)采用最大似然估计算法来估计退化图像的点扩展函数 ,即寻找最适合的点扩展函数来极大化似然函数,先假设一个初始值,然后通过迭代方式估计出点扩展函数;
(4)估计加性白噪声 ,采用matlab图像处理工具箱中的二维维纳滤波函数来估计噪声参数;
(5)最后采用维纳滤波对退化图像进行复原。维纳滤波也称最小均方误差滤波,它能处理被退化函数退化和噪声污染的图像。该滤波方法建立在图像和噪声都是随机变量的基础之上,目标是找到理想图像 的一个估计 ,使它们之间的均方误差最小,即 。

算法步骤:
(1)均值滤波去噪
(2)估计加性白噪声模型参数
(3)估计点扩散函数
(4)维纳滤波进行图像复原

二、效果图

在这里插入图片描述

三、代码

# 利用维纳滤波还原图像
import cv2
import numpy as np
from numpy import fft
from matplotlib import pyplot as plt
import cmath


def degradation_function(m, n,a,b,T):
    P = m / 2 + 1
    Q 
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值