【秣厉科技】LabVIEW工具包——OpenCV 教程(17):视频分析


前言

  1. 需要下载安装OpenCV工具包的朋友,请前往 此处
  2. 系统要求:Windows系统,LabVIEW>=2018,兼容32位和64位。

video 模块

video (注意不是videoio)是 OpenCV 视频分析核心模块,目前主要包含两大功能:目标跟踪、背景剥离。

在这里插入图片描述

1. 目标追踪

目标追踪的任务是,对于给定的目标物体,在视频中逐帧定位出其所在的ROI区域。可以用 Tracker 类实现。

Tracker 是一个抽象基类,可用的子类有:TrackerMIL、TrackerGOTURN、TrackerDaSiamRPN、TrackerNano、TrackerVit。

下面使用 TrackerMIL 类实现一段视频的目标追踪。

  • 插入一个 Tracker 选板的 create 函数,切换模式到 “TrackerMIL” ,并设置必要的参数;
  • 借助 VideoCapture 类,打开视频文件,并逐帧读取图像;
  • 在 “目标物体” 首次出现时,调用 Tracker 的 init 函数,指定目标的ROI区域;
  • 在后续的图像帧中,逐帧调用 Tracker 的 update 函数,找出目标最新的ROI位置;
  • 最后使用各自的 release 函数,将所有对象释放。
    参考范例:examples/Molitec/OpenCV/video/video_1(Tracker).vi

在这里插入图片描述

Tracker


2. 背景剥离

对于静止拍摄的摄像头,比如监控摄像头,可以通过视频分析算法区分 “运动物体” 和 “静止背景”,经过多帧分析后,将始终保持静止的 “背景” 从画面中提取出来。可以用 BackgroundSubtractor 类实现。

BackgroundSubtractor 是一个抽象基类,可用的子类有:BackgroundSubtractorMOG2 和 BackgroundSubtractorKNN。

下面提供一个 BackgroundSubtractorMOG2 实现的范例。

  • 插入一个 BackgroundSubtractor 选板的 create 函数,切换模式到 “BackgroundSubtractorMOG2” ,并设置必要的参数;
  • 借助 VideoCapture 类,打开视频文件,并逐帧读取图像;
  • 每读取一帧图像,调用 BackgroundSubtractor 的 apply 函数进行计算,得到一帧 “前景掩码” fgmask;
  • 视频全部结束后,调用一次 BackgroundSubtractor 的 getBackgroundImage 函数,获得最终剥离的背景;
  • 最后使用各自的 release 函数,将所有对象释放。
    参考范例:examples/Molitec/OpenCV/video/video_2(BackgroundSubtractor).vi

在这里插入图片描述

BackgroundSubtractor


总结

  1. 本系列博文作为LabVIEW工具包—OpenCV的教程,将以专栏的形式陆续发布和更新。
  2. 对工具包感兴趣的朋友,欢迎下载试用:秣厉科技 - LabVIEW工具包 - OpenCV
  3. 各位看官有什么想法、建议、吐槽、批评,或新奇的需求,也欢迎留言讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秣厉科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值