MATLAB实现的视频运动检测方法

本文介绍了使用MATLAB进行视频运动检测的三种方法,包括人工提取特定区域平均位置、MPEG运动矢量以及图像相关识别。重点展示了使用vision.BlockMatcher函数进行图像相关识别的代码示例,通过调整参数优化计算速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阅前提示,本文是坑,此路不通,请看下篇。


遇到一个问题。有一个视频,需要计算各帧之间的全局的相对运动(或者可以理解为相机的平动)。经过一番查找,大致有三种思路。

无论哪一种方法,都最好先用After Effects处理一下,添加一些模糊啊、裁边的效果,以降低噪音。

 

第一,如果视频数量很少,可以使用一些tricky的方法,人工提取视频的特点。比如说,如果始终能捕捉到某一特定区域的全貌,而不会跑到边缘或者消失,而且该区域不会变形,那么可以计算这个区域的平均位置。计算方法:

x坐标=求和(区域上各点x坐标)/区域上点的数量;

y坐标=求和(区域上各点y坐标)/区域上点的数量;

如果能很好满足前提条件,这样的算法能轻松实现高精度的运动检测。

步骤简述:

1、读取视频

2、选择合适的阈值进行二值化

3、排除干扰区域,提取出目标区域(这步每个视频都不一样,tricky所在)

4、计算目标区域的平均位置。

缺点:对每个视频都要重新配置,而且不一定好用。

如果可以,在拍摄时就要注意包含容易提取的区域。

 

第二,MPEG有motion vector。视频各帧间各区域的运动情况,可以有助于视频压缩,所以很早就应用于视频压缩技术中。在Linux中运行【ffplay –vismv 3 ***.mp4】,可以看到motion vector的播放。不过如何提取出来是个问题&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值