• SLAM第11讲


    在11讲中要下载DBow3库

    地址:https://github.com/rmsalinas/DBow3

    cd DBoW3 					#进入源文件夹
    mkdir build 				#新建一个编译目标文件夹
    cd build 					#将build作为make工作路径
    cmake -DUSE_CONTRIB=ON .. 	#编译上一级目录,如果您提前安装好了contrib_modules,则使用cmake选项-DUSE_CONTRIB=ON使能SURF,否则直接运行cmake ..
    make -j4 					#或者换为“-j8”甚至直接“make”,这取决于您的电脑的线程数量
    sudo make install 			#安装DBoW3
    
    
    会出现以下报错:opencv2/xfeatures2d/nonfree.hpp: 没有那个文件或目录

    在这里插入图片描述

    分析原因是opencv3没有安装:opencv_contrib

    下载地址:https://github.com/opencv/opencv_contrib
    把它复制到opeencv3目录下从先安装
    在这里插入图片描述

    cd build
    cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.6/modules ..
    //后面“../opencv_contrib-3.4.0/modules”为你opencv_contrib的modules文件夹所在的路径
    make -j8
    
    
    
    安装opencv报错:opencv-3.4.6/modules/stitching/include/opencv2/stitching/detail/matchers.hpp

    在这里插入图片描述

    要添加的文件夹地址在这里插入图片描述
    找到opencv-3.4.6/modules/stitching/include/opencv2/stitching/detail/matchers.hpp文件进行修改地址,用绝对路劲进行设定修改opencv2/xfeatures2d/cuda.hpp的相对路径

    后面报错有好几都是一样的,都用绝对路径修改

    在这里插入图片描述

    报错:boostdesc.cpp:653:20: fatal error: boostdesc_bgm.i: 没有那个文件或目录 #include “boostdesc_bgm.i”

    在这里插入图片描述

    压缩包地址:

    链接:https://pan.baidu.com/s/17XhXX_cLz46bsj9ZWRkNIg
    提取码:p50x
    解压后放到这个文件加下
    在这里插入图片描述
    在进行编译,还会出现路劲不对的报错,对程序进行修改,改写成绝对路劲就可以了。

    进行安装opencv
    sudo make  install
    
    
    
    添加路径
    sudo gedit  /etc/ld.so.conf.d/opencv.conf
    
    
    然后在打开文件中添加如下内容:
    /usr/local/lib
    
    之后再终端输入:
    sudo ldconfig
    
    使其保存并生效。
    再在终端输入
    sudo gedit /etc/bash.bashrc
    
    打开文件后在末尾输入:
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH
    
    保存退出,终端输入:
    source /etc/bash.bashrc
    

    至此,opencv及opencv_contrib安装配置完成了!

    测试

    进入opencv/samples/cpp/example_cmake目录下,终端打开,依次输入:

    cmake .
    make
    ./opencv_example
    
    出现hello  opencv字样文成 opencv安装
    在对DBoW3中的 build进行删除从新编译
    mkdir build 				#新建一个编译目标文件夹
    cd build 					#将build作为make工作路径
    cmake -DUSE_CONTRIB=ON .. 	#编译上一级目录,如果您提前安装好了contrib_modules,则使用cmake选项-DUSE_CONTRIB=ON使能SURF,否则直接运行cmake ..
    make -j4 					#或者换为“-j8”甚至直接“make”,这取决于您的电脑的线程数量
    sudo make install 			#安装DBoW3
    
    
    对11讲程序进行编译

    在这里插入图片描述

    出现报错
    make[2]: *** 没有规则可制作目标“/usr/local/lib/libDBoW3.a”,由“gen_vocab” 需求。 停止。
    CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/gen_vocab.dir/all' failed
    make[1]: *** [CMakeFiles/gen_vocab.dir/all] Error 2
    Makefile:83: recipe for target 'all' failed
    
    
    修改CMakeLists.txt文件内容
    cmake_minimum_required( VERSION 2.8 )
    project( loop_closure )
    
    set( CMAKE_BUILD_TYPE "Release" )
    set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )
    
    # opencv 
    find_package( OpenCV 3.1 REQUIRED )
    include_directories( ${OpenCV_INCLUDE_DIRS} )
    
    # dbow3 
    # dbow3 is a simple lib so I assume you installed it in default directory 
    set( DBoW3_INCLUDE_DIRS "/usr/local/include" )
    set( DBoW3_LIBS "/usr/local/lib/libDBoW3.so" )  #这里.a改为.so
    
    add_executable( feature_training feature_training.cpp )
    target_link_libraries( feature_training ${OpenCV_LIBS} ${DBoW3_LIBS} )
    
    add_executable( loop_closure loop_closure.cpp )
    target_link_libraries( loop_closure ${OpenCV_LIBS} ${DBoW3_LIBS} )
    
    add_executable( gen_vocab gen_vocab_large.cpp )
    target_link_libraries( gen_vocab ${OpenCV_LIBS} ${DBoW3_LIBS} )
    
    
    完成后
     ./build/feature_training
    

    在这里插入图片描述

  • 相关阅读:
    SpringBoot3集成Kafka
    Nuxt 常见问题与解决方案
    INI 格式配置文件基础知识
    提取log文件中的数据,画图
    去中心化身份DID(研究)
    从零开始Blazor Server(13)--消息通知
    【模拟实现C语言库函数】atoi的模拟实现
    Unity中Shader的ShaderLOD
    腾讯云服务器简介_CVM优势_常见问题解答
    顶着高通胀,上涨!上涨!上涨!
  • 原文地址:https://blog.csdn.net/qq_46107892/article/details/127093482