基于简单的PSF的参数估计方法和使用OpenCV的维纳滤波器的直线运动模糊图像去模糊外文翻译资料

 2022-12-29 12:02:41

基于简单的PSF的参数估计方法和使用OpenCV的维纳滤波器的直线运动模糊图像去模糊

Aung Kyaw Soe

Navigation College

Dalian Maritime University

Dalian, Liaoning Province, China

Xianku Zhang

Navigation College

Dalian Maritime University

Dalian, Liaoning Province, China

摘要—由于运动而产生的模糊是图像退化最常见的原因之一,它是由相机和场景在曝光时间内的相对运动引起的。由于运动模糊而引起的退化,一些重要的图像数据可能会丢失,这将严重影一些图像应用领域,例如医学成像,遥感和人脸识别。要想将运动模糊图像恢复为接近原始图像的状态,必须正确估计运动参数,如模糊长度和模糊角度。在这片文章中,提出了一种基于单一退化图像的运动参数估计的新算法。对于运动方向的估计,该算法采用直接检测DFT中心谱线的方法,该方法非常简单。对于运动长度估计,提出了两种方法,一种是通过检测DFT中心谱线宽度,而另一种方法无需旋转DFT谱即可检测。实验结果表明,该方法很简单,可以直接检测,为图像去模糊提供了一种简单的解决方案,并且在去模糊过程中可以用更短的执行时间。

关键词-图像去模糊,点扩散函数,psf,模糊角度,模糊长度,维纳滤波器器

  1. 引言

由运动而引起的模糊是图像退化最常见的原因之一。它是由曝光时间内相机和场景之间的相对运动引起的。当被记录的图像在单帧记录期间发生变化时就会产生这种现象,也可能是由于目标物体的快速移动或长时间的曝光或相机的运动而产生的。由于图像的运动模糊而引起的退化,一些重要的图像数据可能会丢失,这将严重影一些图像应用领域,例如医学成像,天文成像,遥感,图像识别,人脸识别,显微成像,摄影的去模糊处理,和法医学,等等。

因此,迫切需要能够纠正或防止运动模糊退化的有效解决方案。因为使用小型手持式相机或将相机固定在船上这样容易震动的地方时,很难避免相机在曝光时间内移动,图像采集后需要进行图像复原过程中的图像去模糊处理。因此,找到一种从模糊的图像中去除运动模糊的方法对于许多应用来说都是非常重要。图像复原的目的是从退化的数据中预测和建立原始图像。通常来说,一张模糊或退化的图像可以用方程(1)近似地描述。

g(x,y) = f(x,y) h(x,y) n(x,y) (1)

其中,g(x,y)是原始图像f(x,y)和未知模糊核h(x,y)加上加性噪声n(x,y)的卷积得到的观测图像。模糊核h(x,y)也称为点扩散函数(PSF)。在空间域中,PSF描述一个光学系统遮盖(扩散)一个光点的程度。

由于噪声函数通常是随机的,因此只能估计其大小或其信噪比。假设是线性运动模糊,PSF可以使用运动模糊角度(theta;)和运动模糊长度(d)通过以下等式来表示:

h(x,y)的频率响应是sinc函数,在运动模糊PSF的频域表示中还保留了运动模糊角和运动模糊长度。一般来说,如果运动模糊的PSF是已知的,则可以通过应用图像恢复的方法将原始图像恢复到一定的精度水平[1]。

去模糊图像的质量在很大程度上取决于对运动模糊参数(PSF的模糊角theta;和模糊长度d)的估计是否精确。对于这些参数的估计,人们提出了许多算法,运动模糊图像的运动估计有两类算法,第一类是利用多幅图像估计运动参数[2,3],第二类是利用单个图像估计运动参数[4,5,6]。使用后一种情况的前提是图像的每个像素的运动都是相同的。

本文提出的恢复算法属于第二类。对于线性运动而言,估计运动的方向和长度就足够了。

大多数的模糊角估计方法都采用Hough变换或Radon变换。本文提出了一种直接检测模糊角度和模糊长度的算法。对不同方向(介于-90°和 90°之间)和运动长度(介于15到45像素之间)的不同类型的标准图像进行了测试。

II.OPENCV库

本研究利用Visual C 6平台上的OpenCV(开源计算机视觉库)库函数对图像进行去模糊实验。OpenCV是一个主要针对实时计算机视觉而开发的编程函数库,由英特尔公司开发,目前由Willow Garage支持。它可以在开源的伯克利软件发行(BSD)许可下免费使用。它的工具库是跨平台的。它主要关注实时图像处理。如果这个库在系统上找到英特尔的集成性能原语,它将使用这些专有的优化例程来加速自身的速度。

III.PSF参数估计

在图1中,标出了原始图像及其傅里叶频谱图像。该图像由于通过了theta;=45°、d=31像素的PSF的卷积运算而变得模糊。所得到的运动模糊图像及其傅里叶频谱图像如图2所示。从这些不同的频谱中,可以提取出一些有用的有关运动的信息。

图1。标准原始图像及其傅里叶变换谱

图2。运动模糊图像(i=45,d=31像素)及其傅里叶谱

运动模糊图像的傅里叶谱具有与运动方向正交的平行线。因此,计算运动方向的任务被简化为计算这些平行线的方向的任务。

为了确定直线的方向,一些研究采用Hough变换[7],一些研究采用Radon变换方法[8,9,10,11]。虽然这两种方法都可以得出不错的结果,但是它们的迭代性需要更长的时间来处理。为了减少处理时间,本文提出了一种新的算法。

A、 运动模糊方向的估计

如图2所示,傅里叶变换光谱的中心条纹的像素强度更加明亮和宽厚。光谱中最亮的像素大部分集中在中心条纹上。利用这种现象,我们的算法只需在光谱矩阵的每一行中找到最亮像素的方向,并根据坐标系的原点计算出最亮像素的角度,计算出相同角度值的个数,然后将他们收集到一个累积矩阵中。然后从累积矩阵中求出最大角度值,作为谱带的方向。借助于图3中的图示,在流动部分描述该算法的细节。

  1. 运动方向检测算法

该算法包括两部分:倾角beta;和倾角偏差delta;。求倾角beta;的算法如下。

1、分割输入彩色图像的颜色通道。

2、对R、G、B其中一个通道进行离散傅里叶变换。

3、以DFT谱矩阵作为检验的输入矩阵。

4、在输入矩阵上半部分的每行中查找最大像素值。采用从左到右和从右到左的方向进行检查。然后根据两次检测结果的差异,找出准确的最大像素值点,以避免检测误差。

5、一旦最大像素值点固定,则从坐标系原点计算该点的倾角。用下面的公式(3)计算倾角(beta;)。

6、在新矩阵中记录每行的倾角。

7、计算该矩阵中相同倾角的数目。

8、取出现次数最多的倾角作为图像中心谱带的倾角(beta;)。

  1. 在每行中查找最大像素值

  1. 绘图上角度值的最大数目

图3、运动模糊图像彩色通道DFT谱中心条纹倾角计算图解

表一、运动模糊角计算结果

C、 倾角偏差(delta;)

不幸的是,许多倾斜角(beta;)值与所需的运动方向或模糊角(theta;)不是直接对应的,除了beta;gt;65°的情况下。这可能是由于矩阵旋转的不精确而导致的,beta;和theta;之间存在角度偏差。为此,我们进行了大量的实验来研究倾斜角(beta;)与运动模糊角(theta;)之间的关系。根据我们的实验,以度为单位的偏差角(delta;)如等式(4)所示。

然后通过从倾斜角(beta;)中减去偏差角(delta;),得到所需的运动模糊角(theta;),如等式(5)所示。

算法的第二部分是求运动模糊角delta;。

1、计算与倾角(beta;)的偏差角(delta;)。

2、从倾角(beta;)中减去偏差角(delta;)。

使用该算法对运动模糊角的估计结果如表1所示。使用四个标准图像和一个自己的图像(Oven)来估计模糊角。首先用线性运动模糊方法对所有图像进行模糊处理。在表一中,包括(lt;plusmn;1°)在内的平均角度估计结果大于91%,而大于等于plusmn;2°的平均角度估计结果小于9%。事实上,很难做到准确的估计,少于1度的偏差就已经是比较精确的了。

D、 运动模糊长度的估计

对于运动模糊长度的估计,有人提出倒谱法[7,11,12],有人提出Radon变换法[10],有人提出坐标轴旋转法[9]。

本文提出了两种新的求模糊长度的简单方法。在第一种方法中,首先根据倾斜角(beta;)逆时针旋转图像。然后由上而下检查图像每一列中的最大像素值,为了减少迭代时间,选择图像中像素强度最集中的区域作为中心。图4示出了运动模糊图像的旋转DFT谱和像素检查方法。下一节将详细介绍第一种运动模糊长度的算法。

  1. 运动模糊长度检测算法

算法1

1、沿倾斜角度(beta;)的逆时针方向旋转图像。

2、取图像的垂直中心四分之一部分进行像素值检查。

3、在每列中找出最大像素值,并累积成1D矩阵。

4、绘制1D矩阵,如图5所示。

5、 找到中央叶两边的转折点。将这些转折点之间的像素值差作为DFT谱的主光束宽度(wc)。

6、 同时找出中央叶两侧的第二、第三和第四个叶的宽度,并注明为wright1、wright2、wright3、wleft1、wleft2和wleft3。

图4、用算法1计算DFT谱中心条纹宽度的实例

图5、转向点垂直检查1D图(红色圆圈表示中央叶和侧面叶的转向点)

7、对于每个波瓣和另一个波瓣之间相隔大于3个像素,则丢弃该波瓣。如果没有,则会考虑最终模糊长度。

8、根据方程(6)计算所有考虑到的波瓣宽度的平均值。

所有被考虑的叶的宽度之和

D = (6)

考虑的波瓣总数

式中,D=平均瓣宽

例如,计算最终模糊长度时将所有的波瓣宽度都考虑进去,

  1. 通过将图像宽度(M)除以平均波瓣宽度(D),找到运动模糊长度(d),如等式(7)所示。

算法 2

因为算法1产生的误差是由矩阵旋转的误差引起的。因此第二种算法不需要旋转谱矩阵。算法如图6所示。具体算法如下。

1、将图像的阈值设为64,使用形态学的操作方法,例如关闭中值滤波器的平滑和扩张效果。

2、沿矩阵水平中心线两侧的三行中查找叶的宽度。

  1. 求出平均宽度,即XY的长度,如等式(8)所示。

其中,row = 图像的总行数,wn = 谱瓣沿行第n个的宽度

4、如图6所示,谱线的倾斜角(beta;)与所需的角(alpha;)相同。

5、应用方程(9)求出YZ的长度,即平均瓣宽(D)。

(a) 处理后的中心瓣(中心双箭头线表示所需宽度2D)

(b) 算法说明

图6. 用算法2计算DFT谱中心条纹宽度的实例

  1. 通过将图像宽度(M)除以平均波瓣宽度(d),找到运动模糊长度(d),如等式(7)所示。

实验在15~45像素的模糊长度和-90~ 90度的bur角范围内进行。利用这两种算法对运动模糊长度的估计实验结果如表二所示。对于(lt;plusmn;5像素)的平均长度估计,算法1为80%,算法2为86%。大于5像素的误差,算法1为20%,算法2为14%。由于这些条件下像素的非均匀扩散,大多数误差发生在越来越小的倾角上。结果表明,第二种算法优于第一种算法。

表二. 运动模糊长度的计算结果

  1. 用维纳滤波实现运动模糊图像的三维模糊效果

在对运动模糊角度和模糊长度进行估计后,构造估计的PSF,然后对模糊图像进行图像去模糊滤波。PSF的频率响应是如等式(10)所示的sinc函数。

本研究只针对直线运动模糊的主要问题PSF参数的估计,仅采用维纳滤波器对运动模糊图像进行去模糊处理。它是一种降低均方误差的线性滤波器,可以在频域中以数学形式表示,如等式(11)所示。

其中,R Wiener是重建图像,H*(u,v)是PSF的复共轭,| H(u,v)|是PSF的幅度,SNR是信噪比。利用OpenCV库的cvDft和cvMulSpectrums函数进行Wiener反褶积。

为了减少由于图像边缘的不连续性而在输出图像中产生的振铃效应,在恢复之前对图像进行汉恩窗口处理。使用自相关方法估计噪声功率,如[13]所述。

  1. 去模糊图像结果

如前几节所述,线性运动模糊图像的去模糊是通过维纳滤波器来完成的。例如,图7示出了原始图像、其模糊图像和其恢复(去模糊)图像。在该图中,恢复图像的视觉质量相对较好,均方误差大大减小,PSNR值远大于模糊图像。

  1. 原始图像

  1. 模糊图像(theta;=21ordm;, d=31)

(c)去模糊图像(维纳滤波器)

图7. 原始图像、模糊图像和去模糊图像的比较

  1. 总结

由于更好的图像恢复需要更好的P

剩余内容已隐藏,支付完成后下载完整资料


英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[273539],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。