当前位置: 首页 > 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
http://www.lryc.cn/news/375033.html

相关文章:

  • Unity | Shader基础知识(第十四集:简单效果练习)
  • Vue48-ref属性
  • 【SpringCloud学习笔记】RabbitMQ(中)
  • 【C++】类和对象的引入
  • 11.5.k8s中pod的调度-cordon,drain,delete
  • Java中线程的创建方式
  • 猫头虎推荐20个值得体验的通用大模型
  • Novartis诺华制药社招综合能力性格动机问卷入职测评笔试题库答案及包过助攻
  • Adam优化算法
  • MYSQL 三、mysql基础知识 7(MySQL8其它新特性)
  • git error: does not have a commit checked out fatal: adding files failed
  • Java Websocket分片发送
  • vivado NODE、PACKAGE_PIN
  • JavaEE、SSM基础框架、JavaWeb、MVC(认识)
  • 【漏洞复现】飞企互联-FE企业运营管理平台 treeXml.jsp SQL注入漏洞
  • Android基础-运行时权限
  • postman断言及变量及参数化
  • 安装和使用TrinityCore NPCBot
  • Hvv--知攻善防应急响应靶机--Linux2
  • replaceAll is not a function 详解
  • 如何设置天锐绿盾的数据防泄密系统
  • 003 gitee怎样将默认的私有仓库变成公开仓库
  • Spring框架中的IOC(控制反转)详解
  • Score Matching(得分匹配)
  • 五大维度大比拼:ChatGPT比较文心一言,你的AI助手选择指南
  • 大学课设项目,Windows端基于UDP的网络聊天程序的服务端和客户端
  • 【5.x】ELK日志分析、集群部署
  • 揭秘创业加盟:豫腾助力,发掘商机,共赢未来
  • Linux操作系统以及一些操作命令、安装教程
  • 树莓派4B_OpenCv学习笔记6:OpenCv识别已知颜色_运用掩膜