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

发布于:2025-04-07 ⋅ 阅读:(32) ⋅ 点赞:(0)


前言

  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. 各位看官有什么想法、建议、吐槽、批评,或新奇的需求,也欢迎留言讨论。