ubuntu跑orb-slam2数据集没反应,没结果

pangolin和opencv都没什么问题,orb编译也没问题,但是运行时就是什么提示也没有

img

img

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你看下这篇博客吧, 应该有用👉 :视觉SLAM3学习之ORB_SLAM3(二)opencv3.2的安装
  • 除此之外, 这篇博客: ORB-SLAM3配置及安装教程(2023.3)中的 2.4 Opencv安装 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    最新的ORB-SLAM3要求OpenCV 4.4及以上
    但是最好不要安装OpenCV4以上(参考博主的解释是:4默认不会生成.pc文件,最后查看版本的时候查看不到,找不到包)。具体原因不太理解,最后也选择安装3.4.3版本
    首先,到官网下载源码:

    https://opencv.org/releases/page/5/
    ps.下载其他OpenCV3版本的理论上也可以,为了避免其他错误,选择参考博主的版本,实验可行。

    选择sources文件

    下载之后放在最开始创建的文件夹,解压

    unzip opencv-3.4.3.zip
    

    ps. 也可以直接右键提取文件

    更新一下,准备安装OpenCV依赖库

    sudo apt-get update
    

    使用一条指令安装所有依赖库

    sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff5-dev libswscale-dev libjasper-dev
    
    # 原博客安装的是libtiff4-dev,运行过程报错,改成libtiff5-dev
    

    注意:在运行的时候可能会出现以下报错信息

    error: unable to locate libjasper-dev 无法定位这个包libjasper-dev

    解决方法是:执行以下指令

    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper1 libjasper-dev
    

    其中libjasper1是libjasper-dev的依赖包

    运行完这个,再安装下面这个指令就没错了

    sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
    

    安装好依赖,开始编译OpenCV

    cd opencv-3.4.3
    mkdir build
    cd build
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    

    注意:执行上面指令后,终端会自动下载一个必需的ippicv加速库。
    如果终端卡住并显示正在下载,只需要等一会儿不用进行任何操作。
    否则,终端会显示报错,提示ippicv_2017u3_lnx_intel64_general_20170822.tgz的加速库下载失败。报错如下:

    在这里插入图片描述
    解决方法是下载离线的ippicv库

    下载链接为:https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20170822

    下载好之后,把这个ippicv文件夹单独拷贝出来,放到自己的文件夹中

    在这里插入图片描述
    然后把OpenCV源文件中 /3rdparty/ippicv 文件夹下的 ippicv.cmake 中,

    第47行"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/" 改成你新下载的ippicv文件路径

    这样,就改成了离线编译的ippicv文件

    再次执行cmake指令,完成编译

    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    

    PS. 这一步骤在参考博客中说需要科学上网才能正常下载,否则需要自己下载离线库编译。但经过我多次尝试,不需要科学上网也能正常下载ippicv库,可以多尝试几次(下载离线库相对比较麻烦)

    cmake完成之后使用make编译

    ps. j4表示4核,可以根据虚拟机分配的核数进行调整,也可以不用,直接make,速度稍微慢点,但不容易出错

    make -j4
    

    这个过程时间可能稍微长一点,完成之后,不要忘了安装

    sudo make install
    

    到此,OpenCV安装结束,然后配置一下环境

    1)添加库路径

    sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
    

    2)更新系统库

    sudo ldconfig
    

    3)配置bash

    sudo gedit /etc/bash.bashrc
    

    在末尾添加如下两行代码

    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
    export PKG_CONFIG_PATH 
    

    4)保存,执行如下指令使得配置生效

    source /etc/bash.bashrc 
    

    5)更新

    sudo updatedb  
    

    如果该指令报错,那么可能是没有安装mlocate

    先执行安装命令

    apt-get install mlocate
    

    然后再sudo updatedb

    6)版本检测

    pkg-config --modversion opencv
    

    注意:如果执行后,显示找不到包。那么注意下载的OpenCV版本是不是3.版本的,OpenCV版本4以上的,默认不生成.pc文件,会出现找不到包的问题

    输出如下,表示OpenCV完成了安装

    在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^