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

多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)C++

多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)C++

flyfish

python实现,说的比这里详细

lapjv.h和lapjv.cpp代码在https://github.com/shaoshengsong/DeepSORT

C++代码调用

#include <iostream>
#include <vector>
#include "lapjv.h"// 打印分配结果
void print_assignment(const std::vector<std::vector<int>>& cost_matrix, const std::vector<int>& assignment) {int n = cost_matrix.size();std::cout << "Custom LAPJV Assignment:" << std::endl;for (int i = 0; i < n; ++i) {std::cout << "Worker " << i + 1 << " is assigned to Job " << assignment[i] + 1 << std::endl;}
}int main() {// 成本矩阵std::vector<std::vector<int>> cost_matrix = {{9, 11, 14, 11, 7},{6, 15, 13, 13, 10},{12, 13, 6, 8, 8},{11, 9, 10, 12, 9},{7, 12, 14, 10, 14}};// 将成本矩阵转换为cost_t类型的矩阵int n = cost_matrix.size();std::vector<std::vector<cost_t>> cost_matrix_cost_t(n, std::vector<cost_t>(n));for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {cost_matrix_cost_t[i][j] = static_cast<cost_t>(cost_matrix[i][j]);}}// 将成本矩阵转化为指针数组以适应lapjv函数std::vector<cost_t*> cost_matrix_ptrs(n);for (int i = 0; i < n; ++i) {cost_matrix_ptrs[i] = cost_matrix_cost_t[i].data();}// 调用lapjv_internal函数解决线性分配问题std::vector<int_t> x(n), y(n);lapjv_internal(n, cost_matrix_ptrs.data(), x.data(), y.data());// 打印分配结果print_assignment(cost_matrix, x);return 0;
}
Custom LAPJV Assignment:
Worker 1 is assigned to Job 5
Worker 2 is assigned to Job 1
Worker 3 is assigned to Job 3
Worker 4 is assigned to Job 2
Worker 5 is assigned to Job 4

相关文章:

  • 苏州辰安塑业携塑料托盘、塑料物流箱解决方案亮相2024杭州快递物流展
  • 音视频开发_SDL音频播放器的实现
  • vue+intro.js实现引导功能
  • 离散数学--连通性和矩阵
  • 通用视频模板解决方案,视频生产制作更轻松
  • C#面:什么是DLL文件,使用它们有什么好处
  • Vue47-修改默认配置webpack.config.js文件
  • 05-5.4.1 树的存储结构
  • Mac下载了docker,在终端使用docker命令时用不了
  • 使用 calibre 拆分电子书合辑
  • vue标签组
  • cloud_enum:一款针对不同平台云环境安全的OSINT工具
  • 当OpenHarmony遇上OpenEuler
  • 元数据:数据的罗塞塔石碑
  • Pytorch环境配置的方法
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【Amaple教程】5. 插件
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 【刷算法】从上往下打印二叉树
  • Android交互
  • ES10 特性的完整指南
  • github从入门到放弃(1)
  • Github访问慢解决办法
  • Java 内存分配及垃圾回收机制初探
  • JAVA 学习IO流
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JAVA多线程机制解析-volatilesynchronized
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • leetcode-27. Remove Element
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • vue-cli3搭建项目
  • vuex 笔记整理
  • 阿里云购买磁盘后挂载
  • 给Prometheus造假数据的方法
  • ------- 计算机网络基础
  • 力扣(LeetCode)56
  • 前端面试总结(at, md)
  • 如何实现 font-size 的响应式
  • 实现简单的正则表达式引擎
  • 我这样减少了26.5M Java内存!
  • 一个项目push到多个远程Git仓库
  • zabbix3.2监控linux磁盘IO
  • 翻译 | The Principles of OOD 面向对象设计原则
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #每日一题合集#牛客JZ23-JZ33
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (function(){})()的分步解析
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (八)Flask之app.route装饰器函数的参数
  • (办公)springboot配置aop处理请求.
  • (二)springcloud实战之config配置中心
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (南京观海微电子)——I3C协议介绍