机器学习实践系列之6 - OpenCV实战光流

本文介绍了光流的基本概念,它是通过相邻帧间的像素变化来计算物体运动的一种方法。文章详细讲解了稀疏光流的Lucas-Kanade算法,包括goodFeaturesToTrack()和calcOpticalFlowPyrLK()的使用,并对比了稠密光流,指出其在全图像像素级别计算的优势和较高的计算需求。OpenCV提供了稠密光流的实现,采用Gunnar Farneback算法。

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

       光流(optical flow)是运动物体运动带来的像素变化,表示 像素空间的运动速度,直观也可以理解为 光的流动。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。

       光流是通过 像素在时域上的变化来计算的,通过相邻帧之间的相关性来找到上一帧跟当前帧之间的对应关系。

       光流分为 稀疏光流稠密光流


• 稀疏光流

       所谓 稀疏光流,是指 金字塔Lucas-Kanade 方法(简称 LK 方法),算法分为两步:

1. 通过 goodFeaturesToTrack() 来寻找角点,也就是稀疏的概念;

2. 针对获得的两组Corner角点,通过 calcOpticalFlowPyrLK() 来 进行跟踪 Match。

    这一步是LK光流的关键,里面用到了复杂的多尺度特征(金字塔),此处不再展开,大家可以看OpenCV源码。

       相对于稠密光流, 稀疏光流 只需要对关键点进行计算,计算量较小,经常被用于 图像配准目标跟踪

       下图是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值