主要内容

视频Mosaicking

这个例子展示了如何从一个视频序列创建一个马赛克。视频拼接是将视频帧拼接在一起,以形成场景的全貌的过程。由此产生的拼接图像是视频数据的紧凑表示。视频拼接块通常用于视频压缩和监控应用。

这个例子演示了如何使用角点检测块、估计几何变换块、投影变换块和合成块从一个视频序列创建一个马赛克图像。

示例模型

视频拼接模型如下图所示:

Input子系统从一个文件加载一个视频序列,或者生成一个合成视频序列。选择是用户定义的。首先,角点检测块通过角点匹配子系统找到连续帧之间匹配的点。然后几何变换估计块计算变换矩阵的精确估计。该块采用RANSAC算法消除离群输入点,减少输出拼接图像接缝处的误差。最后,镶嵌子系统将当前视频帧叠加到输出图像上生成镶嵌。

输入子系统

输入子系统可以配置为从文件加载视频序列,或生成合成视频序列。

如果您选择使用文件中的视频序列,则可以通过只处理部分视频帧来减少计算时间。这是通过在帧速率下采样子系统中设置下采样速率来完成的。

如果选择合成视频序列,可以设置平移和旋转的速度,输出图像的大小和原点,以及噪声的水平。合成视频序列发生器的输出模拟了在平面上任意运动的透视相机所捕获的图像。

角匹配子系统

该子系统通过三种方法中的一种来查找当前视频帧中的角点特征。这个例子使用了局部强度比较(Rosen & Drummond),这是最快的方法。其他可用的方法是哈里斯角检测(Harris & Stephens)和最小特征值(Shi & Tomasi)。

角匹配子系统查找角的数量、位置和它们的度量值。然后,该子系统计算当前帧中所有特征与前一帧中所有特征之间的距离。通过搜索最小距离,找到最优匹配特征。

Mosaicking子系统

通过累积连续视频帧之间的变换矩阵,该子系统计算当前帧与第一帧之间的变换矩阵。然后,子系统将当前视频帧覆盖到输出图像上。通过重复这个过程,子系统生成一个镶嵌图像。

当视频序列倒带或估计几何变换块没有找到足够的嵌线时,该子系统将重置。

视频拼接使用合成视频

“角落”窗口显示当前视频帧中的角落位置。

镶嵌窗口显示生成的镶嵌图像。

视频拼接使用捕获的视频

“角落”窗口显示当前视频帧中的角落位置。

镶嵌窗口显示生成的镶嵌图像。