OpenTLD源码生成VS2010工程和编译过程

OpenTLD算法是做什么的,我就不多介绍了,很多人前辈都介绍过了。我参考的博客有

庖丁解牛TLD(五)——井底之蛙啦~

OpenTLD C++ 尝试车辆目标跟踪[1]

看了这个挺好玩的,就打算自己编译一下跑跑看。

我的环境是win7  + vs2010  原来装了个opencv2.3.1(也是网上下载的,不是那种自己编译安装的,所以少了一些工程文件,这个让我在编译OpenTLD的时候搞了好久才搞明白)

首先下载OpenTLD,下载的网址是:

GitHub - alantrrs/OpenTLD: :eyes: C++ implementation of TLD

下载后解压到了C盘,我的OpenCV也是在C盘。

接着要用Cmake来生成VS2010的工程文件,需要先下载Cmake,下载的地址:

http://www.cmake.org/files/v2.8/cmake-2.8.10.2-win32-x86.exe

下载安装好后,需要设置环境变量,添加(这个根据你自己的opencv安装路径来)

OpenCV_DIR=C:\opencv\build

接下来就是从开始菜单找到“Visual Studio 命令提示(2010)”,进入命令行,cd到你解压的opentld目录,接下执行如下命令。

mkdir build

cd build

cmake ../src/

这个过程报错,说找不到FindOpenCV.cmake文件,

这个时候就到网上下载FindOpenCV.cmake文件,地址是http://opencv.willowgarage.com/wiki/FindOpenCV.cmake,把这个页面中FindOpenCV.cmake的内容拷下来,保存到src目录。再执行cmake ../src/ 应该就会成功了。

(我的opencv 2.3.1是网上下载的,不需要自己编译,所以这个过程中出现了问题,提示少了OpenCVConfig.cmake文件,找来找去没有,只好重新用cmake命令到opencv的build目录去执行了一下cmake ../src/,生成成功,接着在opentld的build目录执行cmake ../src/就没问题了)。

生成工程成功以后,就是导入到vs2010中,编译执行,悲剧了,提示报错,在网上找了一些资料,仔细看了我参考了第一编文章后面的回复,总算编译通过了,过程如下:

至于编译过程会遇到的错误修正总结如下:
1、TLD::bbPoints函数调用的ceil函数强制把参数类型转换为double。
2、vs2010不存在round函数,重新写一个
int round(float f)

if ((int)f+0.5>f) 
return (int)f; 
else 
return (int)f + 1; 
}

或者把round要改成cvRound。
3、TLD::clusterBB函数中,vs不支持这种动态数组分配。
float L[c-1]; //Level
int nodes[c-1][2];
int belongs[c];
改成指针和动态分配内存
float *L = new float [c-1]; //Level
int **nodes = new int *[c-1];
for(int i = 0; i < 2 ;i ++)
nodes[i] = new int [c-1];
int *belongs = new int [c];
记得在函数末释放分配的内存
delete [] L;
L = NULL;
for (int i = 0; i < 2; ++i)
{
delete [] nodes[i];
nodes[i] = NULL;
}
delete []nodes;
nodes = NULL;
delete [] belongs;
belongs = NULL;
4、调用floor函数的地方,把参数强制类型转换为double

把所有错误按上面说的方法做修改后,保存编译,OK整个过程完成了。

本文相关的工程文件和源码上传到了CSDN的下载区,大家可以到此下载:

OpenTLD源码与VS2010工程

http://download.csdn.net/detail/benshu_001/4934079

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/32235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始学JAVA-数组和方法篇

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、数组是什么&#xff1f; 1.格式 2.动态初始化 3.元素的访问 4.静态初始化 5.数组的遍历 6.常见问题 二、方法 1.什么是方法 2.方法定义和调…

华为RH2288 V3安装 Linux 系统,安装过程心得

带着U盘&#xff0c;怀着激动的心情进入机房安装操作系统&#xff0c;结果没有显示器和键盘鼠标&#xff0c;傻眼了。 作为过来人&#xff0c;温馨提醒&#xff0c;进入机房前记得先打听&#xff0c;准备好这些&#xff1a;机房房间号、机柜编号、物理机编号、键盘、鼠标、显示…

ShareX,屏幕截图、屏幕录制和文件共享,还提供了丰富的高级功能和自定义选项

ShareX是一个免费开源的Windows应用程序&#xff0c;用于屏幕截图、屏幕录制和文件共享。它不仅支持基本的屏幕截图功能&#xff0c;还提供了丰富的高级功能和自定义选项&#xff0c;使其成为提高工作效率和截图体验的利器。以下是ShareX v16.1.0便携版的主要功能和特色&#x…

别再滥用std::async了,strace命令暴露了一个乱开线程问题

用strace查看进程的系统调用后&#xff0c;发现一个std::async滥用问题 问题现象 进程的系统调用clone次数持续增加 使用工具strace发现进程clone系统调用过多且一直在增加 strace -c -p PID问题分析 clone在做什么&#xff1a;创建进程&#xff08;线程&#xff09; 查看…

【吊打面试官系列-Mysql面试题】什么是存储过程?用什么来调用?

大家好&#xff0c;我是锋哥。今天分享关于 【什么是存储过程&#xff1f;用什么来调用&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 什么是存储过程&#xff1f;用什么来调用&#xff1f; 答&#xff1a;存储过程是一个预编译的 SQL 语句&#xff0c;优点是…

昇思25天学习打卡营第4天|数据变换(Transforms)

一、简介&#xff1a; 数据变换是指将已有的数据转换成可以提供给模型直接训练和验证的数据格式&#xff0c;在深度学习中一般被称为数据预处理&#xff0c;之前在昇思25天学习打卡营第3天|数据集Dataset-CSDN博客 介绍数据集的时候已经有了一个简单的使用&#xff0c;下面将具…

docker 基本用法及跨平台使用

一、Docker的优点 docker 主要解决的问题就是程序开发过程中编译和部署中遇到的环境配置的问题。 1.1 Docker与其他虚拟机层次结构的区别** 运行程序重点关注点在于环境。 VM虚拟机是基于Hypervisor虚拟化服务运行的。 Docker是基于内核的虚拟化技术实现的。 1.2 Docker的技…

基于uniapp的h5接入企业微信客服在线聊天

首先说下企业微信接入场景,支持的接入场景有以下几种,基本上涵盖了微信生态大部分场景: 接入步骤 1.创建企业微信号 按照官方操作步骤注册,需要注意的是未认证仅支持接入100人,已认证支持接入2000人. 2.创建客服账号 每个客服账号支持配置人工或是机器人或是人工机器人回复…

分享uniapp + Springboot3+vue3小程序项目实战

分享uniapp Springboot3vue3小程序项目实战 经过10天敲代码&#xff0c;终于从零到项目测试完成&#xff0c;一个前后端分离的小程序实战项目学习完毕 时间从6月12日 到6月22日&#xff0c;具有程序开发基础&#xff0c;第一次写uniapp,Springboot以前用过&#xff0c;VUE3也…

C++ (week8):数据库

文章目录 一、数据库简介1.数据库2.MySQL(1)数据库的结构(2)MySQL的三种使用方式(3)命令行(4)Navicat Premium 二、SQL1.SQL (Structured Query Language)&#xff0c;即结构化查询语言2.数据定义语言 DDL (Data Definition Language) &#xff0c;创建、修改、删除数据库、表结…

dex文件结构(二):dex文件加载基本原理

return mClassLoader; } 1.3 ApplicationLoaders.getClassLoader public ClassLoader getClassLoader(String zip, String libPath, ClassLoader parent){ //Class.getSystemClassLoader返回的是一个PathClassLoader //baseParent是BootClassLoader ClassLoader basePare…

刷代码随想录有感(113):动态规划——爬楼梯plus

题干&#xff1a; 代码&#xff1a; #include<bits/stdc.h> using namespace std;int main(){int n,m;cin>>n>>m;vector<int>dp(n 1, 0);dp[0] 1;for(int j 0; j < n; j){for(int i 1; i < m; i){if(j > i)dp[j] dp[j - i];}}cout<&…

2001NOIP普及组真题 1. 数的计数

线上OJ&#xff1a; 【01NOIP普及组】数的计数 核心思想&#xff1a; 1、样例中给到了 f[6] 6。其实这里包含了 f[3]2&#xff0c; f[2]2, f[1]1, 以及6本身。 注解&#xff1a;按照题意&#xff0c;6前面的数字只能是3,2,1&#xff0c;或者不放&#xff08;不放就是6本身&am…

Python爬虫实战:批量下载网站图片

1.获取图片的url链接 首先&#xff0c;打开百度图片首页&#xff0c;注意下图url中的index 接着&#xff0c;把页面切换成传统翻页版&#xff08;flip&#xff09;&#xff0c;因为这样有利于我们爬取图片&#xff01; 对比了几个url发现&#xff0c;pn参数是请求到的数量。…

Admin

目录 1、 Admin 2、 Contact 3、 Registration 4、 Course Admin

6.22面试问题【1】长链表排序选择归并还是快排

先问快排和归并的思路&#xff1f; 快速排序 快速排序的基本思想是通过一个划分操作&#xff0c;将待排序的数组分为两个部分&#xff0c;其中一部分的所有数据都比另一部分的所有数据要小&#xff0c;然后再递归地对这两部分数据分别进行快速排序&#xff0c;整个排序过程可以…

cocos 如何使用九宫格图片,以及在微信小程序上失效。

1.在图片下方&#xff0c;点击edit。 2.拖动线条&#xff0c;使四角不被拉伸。 3.使用。 其他 在微信小程序上失效&#xff0c;需要将packable合图功能取消掉。

IOS Swift 从入门到精通: 类和继承

文章目录 创建自己的类类继承覆盖方法final 类复制对象反初始化器可变性总结 创建自己的类 类与结构类似&#xff0c;因为它们允许您创建具有属性和方法的新类型&#xff0c;但它们有五个重要的区别&#xff0c;我将逐一介绍每个区别。 类和结构体之间的第一个区别是&#xf…

速度测试分析软件MySpeed

什么是 MySpeed &#xff1f; MySpeed 是一款速度测试分析软件&#xff0c;可记录您长达 30 天的互联网速度。使用 MySpeed&#xff0c;您可以轻松生成有关速度、ping 等的清晰统计数据。配置运行状况检查&#xff0c;以便在出现错误或停机时通过 Gotify、Discord、WhatsApp 或…

海报设计师的福音来了,微软联合清华北大提出Glyph-ByT5-v2,可支持多国语言图文海报生成,效果惊艳!

清华&北大&微软&利物浦大学联合提出Glyph-ByT5-v2这款工具支持多语言图文生成&#xff0c;包括英语、中文、日文、韩文、法文、德文、西班牙文、意大利文、葡萄牙文和俄文。 以下分别展示中、英、日、韩图文的视觉文本结果一起带大家感受一下。 相关链接 论文地址…