码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

  • 相关阅读:
    电磁铁概述
    Python爬虫——PhantomJS的使用和handless
    Delphi XE2 新控件 布局Panel TGridPanel TFlowPanel
    IM开源项目OpenIM部署文档-从准备工作到nginx配置
    【分享】“微伴助手“在集简云平台集成应用的常见问题与解决方案
    python————函数与模块化编程,含日历展示的实现
    腾讯云服务器多少钱一年?腾讯云优惠服务器有哪些?
    SRM供应商关系管理是什么?SRM供应商关系管理系统包含哪方面的内容?
    NPDP在国内的含金量
    JVM--基础--24.2--日志参数
  • 原文地址:https://blog.csdn.net/benshu_001/article/details/8443895
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号