pangolin和opencv都没什么问题,orb编译也没问题,但是运行时就是什么提示也没有
最新的ORB-SLAM3要求OpenCV 4.4及以上
但是最好不要安装OpenCV4以上(参考博主的解释是:4默认不会生成.pc文件,最后查看版本的时候查看不到,找不到包)。具体原因不太理解,最后也选择安装3.4.3版本
首先,到官网下载源码:
下载之后放在最开始创建的文件夹,解压
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完成了安装