运动模糊与拖影的物理原理
大家好,我是你们的老朋友。今天咱们来聊聊运动场景防抖里最基础、也最绕不开的话题——运动模糊和拖影到底是怎么来的。
说实话,我刚入行那会儿,总觉得运动模糊就是个「拍糊了」的问题。后来在项目里被折腾得够呛,才明白这背后藏着不少物理门道。你想想看,一个高速运动的物体,为什么在画面里会拉出一条残影?这其实跟相机怎么「看」这个世界有直接关系。
曝光时间与运动速度的关系
先问个问题:一张照片是怎么形成的?
简单说,就是快门打开,光线进来,传感器感光,然后快门关上。这个过程中,如果被拍摄的物体在动,那它反射的光就会在传感器上「跑」一段距离。曝光时间越长,物体跑得越远,画面里自然就糊了。
这里有个关键公式:
运动模糊像素数 = (物体速度 × 曝光时间 × 传感器分辨率) / 视场宽度
举个例子你就明白了。假设一个物体以 10 米/秒的速度横向移动,曝光时间是 1/30 秒,传感器水平分辨率是 1920 像素,视场宽度是 10 米。那么:
模糊像素数 = (10 × 1/30 × 1920) / 10 = 64 像素
64 个像素的拖影,在 1080p 的画面里已经非常明显了。我在做无人机航拍项目时,就吃过这个亏。当时拍的是高速飞行的赛车,曝光时间设成了 1/50 秒,结果画面里全是拉丝效果,后期怎么修都救不回来。
核心结论:曝光时间每缩短一半,运动模糊量就减少一半。但代价是进光量也减半,画面会变暗。
快门类型对拖影的影响
这里我要重点说说两种快门——全局快门和卷帘快门。它们对拖影的影响完全不同。
全局快门
全局快门的工作方式很直接:所有像素同时开始感光,同时结束。就像全班同学一起拍照,快门一响,所有人同时定格。
优点很明显:运动物体不会出现「歪斜」或「扭曲」的变形。缺点嘛,就是成本高,而且高速读取时容易产生噪声。
卷帘快门
卷帘快门就有点意思了。它是一行一行扫描曝光的,就像窗帘一样从上往下拉开。第一行开始曝光,过一会儿第二行才开始,依此类推。
这就导致了一个经典问题——果冻效应。你拍一个快速摆动的扇子,扇叶在画面里会变成弯曲的。为什么?因为扇叶在从上往下扫描的过程中,位置一直在变。
| 特性 | 全局快门 | 卷帘快门 |
|---|---|---|
| 曝光方式 | 所有像素同时 | 逐行扫描 |
| 运动变形 | 无 | 有(果冻效应) |
| 成本 | 高 | 低 |
| 噪声 | 较高 | 较低 |
| 适用场景 | 高速运动、工业检测 | 日常拍摄、消费级相机 |
注意:卷帘快门在拍摄快速移动的物体时,除了运动模糊,还会叠加几何变形。这是两种不同的失真,处理方式也不一样。
我记得有一次做手机防抖算法,测试时发现画面边缘的建筑物总是歪的。排查了半天,才发现是卷帘快门导致的果冻效应。后来加了行对齐校正,才把问题解决。
运动模糊的数学模型
聊完了物理现象,咱们来点硬核的——数学模型。搞懂了数学,你才能写出靠谱的防抖算法。
运动模糊在数学上可以看作是一个卷积过程:
g(x, y) = f(x, y) * h(x, y) + n(x, y)
其中:
g(x, y)是观测到的模糊图像f(x, y)是原始清晰图像h(x, y)是点扩散函数(PSF)n(x, y)是噪声*表示卷积操作
说白了,模糊图像就是清晰图像被一个「模糊核」卷积后的结果。这个模糊核就是 PSF,它描述了光点在传感器上的扩散方式。
对于匀速直线运动,PSF 可以简化为:
h(x, y) = 1/L, 当 0 ≤ x ≤ L, y = 0
h(x, y) = 0, 其他情况
其中 L 是运动轨迹的长度(像素单位)。这个公式的意思是:在运动方向上,每个位置的能量贡献是均匀的。
实战技巧:在做去模糊算法时,我建议你先估计运动方向和长度。方向可以通过频谱分析得到(模糊图像的频谱会有暗条纹),长度可以通过自相关函数估算。这两个参数准了,后面的反卷积才有意义。
嗯,这里要注意一点。实际场景中的运动往往不是匀速直线,可能是加速、减速或者曲线运动。这时候 PSF 就复杂多了。我在做车载摄像头防抖时,遇到过急刹车导致的非线性运动模糊,用简单的匀速模型根本解不出来。后来换成了分段线性模型,才勉强搞定。
知识体系总览
为了让你更直观地理解这一章的内容,我画了一张图:
这张图把本章的核心内容串起来了。从左到右,从物理到数学,再到实际应用。你写代码的时候,可以对照着这张图,看看自己卡在哪一步。
好了,这一章就到这里。运动模糊和拖影的物理原理是后续所有防抖技术的基础。搞懂了这些,后面讲算法的时候你才能跟得上。
公众号:蓝海资料掘金营,微信deep3321