阅前提示,本文是坑,此路不通,请看下篇。
遇到一个问题。有一个视频,需要计算各帧之间的全局的相对运动(或者可以理解为相机的平动)。经过一番查找,大致有三种思路。
无论哪一种方法,都最好先用After Effects处理一下,添加一些模糊啊、裁边的效果,以降低噪音。
第一,如果视频数量很少,可以使用一些tricky的方法,人工提取视频的特点。比如说,如果始终能捕捉到某一特定区域的全貌,而不会跑到边缘或者消失,而且该区域不会变形,那么可以计算这个区域的平均位置。计算方法:
x坐标=求和(区域上各点x坐标)/区域上点的数量;
y坐标=求和(区域上各点y坐标)/区域上点的数量;
如果能很好满足前提条件,这样的算法能轻松实现高精度的运动检测。
步骤简述:
1、读取视频
2、选择合适的阈值进行二值化
3、排除干扰区域,提取出目标区域(这步每个视频都不一样,tricky所在)
4、计算目标区域的平均位置。
缺点:对每个视频都要重新配置,而且不一定好用。
如果可以,在拍摄时就要注意包含容易提取的区域。
第二,MPEG有motion vector。视频各帧间各区域的运动情况,可以有助于视频压缩,所以很早就应用于视频压缩技术中。在Linux中运行【ffplay –vismv 3 ***.mp4】,可以看到motion vector的播放。不过如何提取出来是个问题&#