当前位置: 首页 > news >正文

OpenCV视觉分析之目标跟踪(4)目标跟踪类TrackerDaSiamRPN的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

cv::TrackerDaSiamRPN 是 OpenCV 中用于目标跟踪的一个类,它实现了 DaSiam RPN(Deformable Siamese Region Proposal Network)算法。DaSiam RPN 是一种基于深度学习的目标跟踪算法,常用于视频中的目标跟踪任务。

代码示例

假设你已经有了一个有效的 ONNX 模型文件 dasiamrpn_model.onnx。


#include <iostream>
#include <opencv2/opencv.hpp>int main()
{// 读取视频文件cv::VideoCapture cap( 1 );if ( !cap.isOpened() ){std::cout << "Error opening video file" << std::endl;return -1;}// 读取第一帧cv::Mat frame;cap >> frame;if ( frame.empty() ){std::cout << "Error reading first frame" << std::endl;return -1;}// 选择目标区域cv::Rect2d bbox = cv::selectROI( "Select ROI", frame, false, false );if ( bbox.width <= 0 || bbox.height <= 0 ){std::cout << "No ROI selected" << std::endl;return -1;}// 创建 TrackerDaSiamRPN 对象cv::Ptr< cv::Tracker > tracker = cv::TrackerDaSiamRPN::create();tracker->init( frame, bbox );// 跟踪目标while ( true ){cap >> frame;if ( frame.empty() ){break;}// 更新跟踪结果cv::Rect newBox;bool ok = tracker->update( frame, newBox );// 绘制边界框if ( ok ){cv::rectangle( frame, newBox, cv::Scalar( 0, 255, 0 ), 2, 1 );}else{cv::rectangle( frame, newBox, cv::Scalar( 0, 0, 255 ), 2, 1 );}// 显示结果cv::imshow( "Tracking", frame );if ( cv::waitKey( 1 ) >= 0 ){break;}}return 0;
}

运行结果

跟踪的是一个中性笔的笔头
在这里插入图片描述

http://www.lryc.cn/news/472223.html

相关文章:

  • 自动对焦爬山算法原理
  • Hyperledger Fabric有那些核心技术,和其他区块链对比Hyperledger Fabric有那些优势
  • 「Mac畅玩鸿蒙与硬件8」鸿蒙开发环境配置篇8 - 应用依赖与资源管理
  • 【Gorm】传统sql的增删查改,通过go去操作sql
  • HTML小阶段二维表和思维导图
  • AI与低代码的碰撞:企业数字化转型的新引擎
  • HarmonyOS应用开发者基础认证——初级闯关习题参考答案大全
  • Vue背景图片自适应大屏与小屏
  • MongoDB 8.0.3版本安装教程
  • 【C语言】预处理(预编译)详解(下)(C语言最终篇)
  • [Linux] linux 软硬链接与动静态库
  • GitHub Actions的 CI/CD
  • doris 表结构批量导出
  • linux查看文件命令
  • 【2023工业图像异常检测文献】DiAD: 基于扩散模型的多类异常检测方法
  • 三相继电保护机 继电器保护校验仪 微机继电保护测试仪
  • MyEclipse中讲解Git使用——结合GitLab
  • pdf转为txt文本格式并使用base64加密输出数据
  • SpringBoot篇(运维实用篇 - 临时属性)
  • MySQL定时异机备份
  • MMA: Multi-Modal Adapter for Vision-Language Models
  • uniapp通过id获取div的宽度,高度,位置等(应该是 任意平台都通用 )
  • Python Transformer 模型的基本原理:BERT 和 GPT 以及它们在情感分析中的应用
  • 【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)
  • 使用 Pandas 进行时间序列分析的 10个关键点
  • 使用 Mermaid 语言描述 AGI 系统架构图
  • 绘制线性可分支持向量机决策边界图 代码解析
  • No.23 笔记 | WEB安全 - 任意文件漏洞 part 5
  • EasyPlayer.js网页播放器,支持FLV、HLS、WebSocket、WebRTC、H.264/H.265、MP4、ts各种音视频流播放
  • WPF数据绑定的五大模式