如何使用MATLAB从视频中取消相机抖动?

时间:2012-02-01 12:21:04

标签: image-processing computer-vision matlab

由于相机抖动,我的视频会产生一些噪音。如何使用MATLAB消除由于相机抖动引起的影响?

1 个答案:

答案 0 :(得分:0)

由于这个问题在一段时间内没有得到答复,我会采取措施。我无法提供MATLAB特定的解决方案,但我可以提供一般的解决方案。

假设您在写“抖动”时意味着相机位置的帧间差异很小,可以使用稀疏光流方法来处理。

  1. 首先,计算第1帧和第2帧之间的逐像素变化。我使用了Lucas-Kanade方法 - here是一些MATLAB源代码的链接。请注意,此方法非常快,因为它应用于要素集(即角落等)。

  2. 此时,您现在知道第1帧和第2帧之间的移位(以像素为单位)。要注册这两个图像,只需将第2帧“移回”指定的移位值即可。例如,如果第1帧和第2帧之间的差异是(-3,1) - 意味着左边三个像素而一个像素向下 - 你可以简单地将第二帧三个像素向右和一个像素向上翻译。

  3. 对所有后续相邻图像对重复步骤1和2:2,3然后3,4,然后4,5等

  4. 注意:在步骤2中观察像素移位的符号。向上/向下和向左/向右平移取决于处理图像帧的顺序(即第2帧 - 第1帧?或第1帧 - 第2帧)和图像的方向(像素坐标增加向下或向上移动?)