匀速直线运动模糊图像经典复原技术的研究

2016-10-18 22:54王欣田益民项宏峰
电脑知识与技术 2016年21期
关键词:图像复原

王欣+田益民+项宏峰

"

"

"

摘要:数字图像处理中对运动模糊图像复原技术的研究是近年来的研究热点。在测量误差允许范围内,变速、非直线运动都可以看作分段的匀速直线运动的合成,所以对匀速直线运动模糊图像的复原技术的研究更具有一定的代表性。文章主要通过对匀速直线运动模糊图像的复原技术进行展开讨论,分析各种恢复算法的优缺点。为使复原达到最佳效果,在选择复原方法时要结合图像的具体信息。文章通过对各种经典复原技术的探讨,希望能够对其他改进的复原技术提供一定的技术借鉴。

关键词:图像复原;匀速直线运动;复原技术;退化模型;模糊图像

中图分类号:TP17 文献标识码:A 文章编号:1009-3044(2016)21-0170-04

Abstract: Research on restoration of motion blurred image in digital image processing is a hot research topic in recent years. In the range of allowable error measurement, transmission and nonlinear motion can be seen or decomposed into piecewise uniform linear motion, Therefore, the research on restoration technology of uniform linear motion blurred image is more representative. This paper mainly through the uniform linear motion blurred image restoration technology to discuss, analysis of the advantages and disadvantages of various restoration algorithms. In order to make the best recovery, when choosing recovery method to combine the specific information of the image. In this paper, through the study of various classical restoration techniques, hope to provide some technical references for other improved restoration techniques.

Key words: image restoration; uniform linear movement; restoration technique;the blur model; fuzzy images

图像复原是指修复退化或模糊的图像,使得修复后的图像的质量接近真实图像。图像在转换和传送过程中,像质会降低。在拍摄相片时,当景物与镜头的相对运动较大,成像质量会比较模糊,这种情况称之为图像的运动模糊。运动模糊会造成图像退化,对它的研究也一直是图像复原领域的热点课题。图形复原的目的是改善图像的视觉质量,其主要原理是在已经退化的图像的基础之上,通过建立相应的退化模型和知识重建来复原原始图像。运动模糊图像复原是图形复原领域的一个重要研究方向,而匀速直线运动模糊图像复原在其中占有基础性的地位,因为非匀速直线运动都可以看作多个匀速直线运动的合成。匀速直线运动模糊有较多模型,其中最具代表性的是水平方向上的匀速直线运动模糊,通过推广此种方法可以得到其他方向上的运动模糊处理方式。本文主要对常用的经典复原方法进行对比总结和概括,便于今后对其进行针对性的研究。

1图像复原技术

图像退化,在数学上可以表示为卷积;图像复原,亦即反卷积,是根据实际观测到的数据和观测模型以及噪声统计特性的相关知识来估计原来的不失真的物理量[1]。

1.1图像退化模型

匀速直线运动模糊图像是在原始清晰图像的基础上,利用点扩散函数进行卷积运算并通过添加不同类型的干扰噪声信号而形成,可用公式(1)表示图像退化的一般模型:

其中,表示模糊后图像,表示理想的清晰图像,表示卷积运算,通常被称为点扩散函数(PSF),代表噪声函数。假如没有噪声函数的干扰,图像退化模型公式(1)可以表示为。

图像退化过程的模型如图1所示:

根据卷积定理,对式(1)两边进行傅里叶变换,得:

公式(2)中,是运动模糊后的图像经过傅里叶变换后得到的频谱图,是理想的清晰图像经过傅里叶变换后得到的频谱图,是点扩散函数经过傅里叶变换后得到的频谱图,是噪声函数经过傅里叶变换得到的频谱图。

为使研究方便,假设模糊图像不受噪声函数的干扰,则(2)式可以表示为:

1.2 图像复原模型

图像复原模型如图 2 所示。

其中, 表示“求逆”过程,或估计过程。图像的复原过程可看作是仅已知退化图像 并根据式(1),从 里求出复原图像的某种近似的过程,如式( 4) 所示。

2图像复原过程

2.1 建立图像退化模型

假设物体在匀速直线运动中通过平面运动得到图像,在和方向上分别用和表示,曝光时间为 那么匀速运动退化模型可以用公式( 5) 表示:

对式( 5) 进行傅里叶变换, 并将公式( 5) 带入到变换公式得到公式( 6)

对式(6)采用变换积分次序得到式(7)

则式(8)即为由匀速直线运动造成的模糊图像的系统退化模型函数。

摘要:Flash是非常流行的一款多媒体矢量动画软件,在互联网、多媒体课件制作以及游戏软件制作领域有广泛的应用,ActionScript作为Flash的脚本语言,在动画中应用脚本语言,可以制作出交互性强、动画效果更加丰富的Flash动画。目前,Flash软件的最新版本是cs6,对应的脚本语言是AS3,但现在很多Flash动画制作教材中,关于Flash的脚本语言应用的内容仍然是AS2,该文结合多年的Flash动画制作教学体会,总结利用AS3进行脚本语言应用的教学探讨。

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)21-0162-02

1 Flash软件及ActionScript的发展

Flash软件常用版本经历了Flash 5、Flash mx(6)、Flash mx2004、Flash 8.0、Flash cs3、Flash cs4、Flash cs5、Flash cs6。flash的脚本发展,从最初发展到现在经历了三个过程,Actionscript1.0,Actionscript2.0到现在的Actionscript3.0,flash8.0之前的版本都使用的是as2.0以前的脚本,早期的flash 3中采用的是ActionScript 1.0,最简单、最灵活、比较容易理解,这种状况一直保持到flash 5,在flash mx (即flash 6)版本中得到的增强;Flash MX2004 (即Flash 7)引入了ActionScript 2.0,ActionScript 2.0则相对比较规范,是1.0的升级版。首次将OOP(Object Oriented Programming,面向对象的程序设计)引入Flash。它带来了两大改进:变量的类型检测和新的class类语法。ActionScript 2.0的变量类型会在编译时执行强制类型检测;从 flash CS3(即flash 9) 开始升级为ActionScript 3.0,更加系统、规范和完善的OOP。ActionScript 3不光有一个带有新的版本号的ActionScirpt 语言,还有一个全新的虚拟机。ActionScript 1.0和ActionScript 2.0都使用是AVM1(ActionScript 虚拟机1),因此它们在需要回放时本质上是一样的,在ActionScript2上它增加了强制变量类型和新的类语法,它实际上在最终编译时变成了ActionScript 1,而ActionScript 3.0运行在AVM2上,一种新的专门针对ActionScirpt 3代码的虚拟机。在编译阶段,as2采用的是AVM1(actionScript vitual machine),而as3采用的是AVM2。新一代虚拟机采用了OOP思想,在执行速度上比起avm1也快了10倍,还提供了异常处理。同时使用AS2时,一旦出错,AVM1选择的是静默失败,让人根本不知道什么地方出错了,会浪费大量的时间去查错,而AVM2与目前主流的编译器一样,会有异常处理,运行出错会输出错误提示,工作效率大大提高。

2 AS3与AS2的主要区别

新建一个flash文档时,会有新建文档提示,我们可以选择建立as3文档或as2文档。

在ActionScript2.0(AS2)文档中,代码可以写在三个地方,1)写在帧上;2)写在影片剪辑上;3)写在按钮上。

在ActionScript3.0(AS3)文档中,代码只能写在帧中,不像AS2那么随意,如果控制按钮或影片剪辑,那就只能靠实例名来控制了。其实这也是为了规范,和其他编程软件一样,要控制哪个组件,你就得有这个组件的名字。

AS3中带下划线的变量不需要下划线了,如_x, _y,变为x,y,其他的如_root、_visible、_width、_height 等都是直接去掉下划线;_xscale 变为 scaleX, _yscale 变为 scaleY,

scale 值的表示方式改变:

AS2 _xscale = 200 表示 200%

AS3 scaleX = 2 表示 200%

3 ActionScript3.0文档应用例子

3.1 动画播放停止的脚本

创建一个ActionScript3.0动画,新建一个按钮图层,并拖入两个按钮,给单击实现停止的按钮实例命名为an1, 给单击实现播放的按钮实例命名为an2,为实现动画测试时停止在第一帧,单击播放和停止按钮实现控制动画,可新建as图层,并在as图层第一帧写入如下脚本:

stop();

an1.addEventListener(MouseEvent.CLICK,a1);

function a1(e:MouseEvent) {

stop();

}

an2.addEventListener(MouseEvent.CLICK,a2)

function a2(e:MouseEvent) {

play();

}

3.2 带有影片剪辑元件动画播放停止的实现脚本

如果动画中应用有影片剪辑元件,会看到开始测试,影片剪辑元件是播放的,单击停止按钮,影片剪辑元件不起作用,可以作以下改动实现,在属性面板给影片剪辑实例命名ypjj,脚本更改为:

stop();

ypjj.stop();

an1.addEventListener(MouseEvent.CLICK,a1);

function a1(e:MouseEvent) {

猜你喜欢
图像复原
双背景光自适应融合与透射图精准估计水下图像复原
基于MTF的实践九号卫星图像复原方法研究
虚拟现实的图像复原真实性优化仿真研究
一种基于显著性边缘的运动模糊图像复原方法
基于月球观测的FY-2G中波红外波段在轨调制传递函数评价与图像复原
点扩散函数的颜色影响性研究
基于MTFC的遥感图像复原方法
模糊图像复原的高阶全变差正则化模型构建
一种自适应正则化技术的图像复原方法
一种保留图像边缘信息的图像复原方法