运动模糊是photoshop中的一种滤镜,也是AE中的一种动效。本文提出了该效果的一种算法实现及原理推论。演示demo见github。
一、效果演示

二、背景介绍
运动模糊是景物图像中的移动效果。它比较明显地出现在长时间曝光或场景内的物体快速移动的情形。


1).增强快速移动场景的真实感,使视觉上更柔和。
2).在不损失视觉流畅性的情况下,减低帧率,显著减少功耗。
三、运动模糊算法
1.运动模糊的类型
线性
运动模糊发生在单一方向的模糊。镜头的角度会影响动态模糊线条的角度;滤镜的半径长度会影响模糊强度,长度越长会月模糊。本文讨论此种类型。

旋转
产生像物体在旋转的环状动态模糊。此类型的模糊以镜头为准的点为中心,角度为主要影响因素,角度变化越大越模糊。

缩放
缩放型的动态模糊是以图片中心为中心辐射开来的模糊。图片中心未发生模糊但以图片中心为准的外围却会模糊,会让人有凸显图片中心的动态感觉。镜头的缩放长度为主要影响因素。

2.运动模糊的原理
在上一节我们介绍过,在摄影机中产生运动模糊的原因是因为在曝光时间内,拍摄物体产生了唯一,所以造成运动模糊的效果。而在我们现实生活中,同样能够看到很多运动模糊的场景。比如雨滴落下的场景。在下大雨的时候,我们看到的雨滴,并不是一颗一颗的,而是成一条直线落下,但实际雨滴只是水滴的形状,并不是条状。这是由于视觉暂留的现象造成的。当物体停止发光时,在人脑海中的影像信息并不会立即小时,会有短时间的停留,而雨滴楼下的过程,由于视觉暂留的原因,雨滴每次进过的地方会在我们脑海中留下影像,既而形成一条连贯的直线,也就是我们人眼所看到的运动模糊的效果。
2.1.视觉暂留
视觉暂留现象是光对视网膜所产生的光停止作用后,仍保留一段时间的现象,原因是由视神经的反应速度造成的。视觉实际上是靠眼睛的晶状体成像,感光细胞感光,并且将光信号转换成神经电流,传回大脑引起人体视觉。感光细胞的感光是靠一些感光色素,感光色素的形成需要一定的时间,这就形成了视觉暂留的现象,也叫视觉惰性。
当物体在快速运动时,人眼所看到的影像消失后,由于视觉暂留的现象,视神经对物体的印象不会立即消失,而要延续一段时间,就形成了人眼所看到的运动模糊的景象。
基于视觉惰性的特性,当作用于人眼的光线突然消失后,亮度感觉不会立即消失,而是近似按指数规律下降而逐渐消失,如下图:

2.2.视觉惰性与运动模糊
如下是一个物体在制定的方向上运动








3.模糊算法
3.1.点扩散函数
我们给运动方向加上一个斜率β,如下图所示:

则运动方向上最简单的运动模糊模型可用直线型点扩散函数以离散卷积形式表示为:



涉及的参数有:
1)方向β
2)模糊半径L
如下图为一张需要处理的图片,每个格子表示图片中的每个像素。红色格子为需要处理的像素。假设模糊半径为r,方向角度为β


三、性能优化
减少采样点
对于一张n1xn2像素的图片,采用上述运动模糊的算法复杂度为




可见,采样优化后的效果与优化前基本一致。