关于slam十四讲中opencv安装报错以及解决方案

       在学习slam十四讲中的ch5时需要使用到opencv3版本,但是在ubuntu系统上很不容易安装。最后查了大量的资料终于安装好了,希望这篇文章可以为大家有所帮助。

        在这里电脑时ubuntu20.04的系统,安装的是OpenCV3.4.12版本。

安装步骤如下:

① 安装依赖库(这个几乎所有教程都有介绍,大家可以看看自己缺少了哪些依赖并自行进行安装)

首先安装依赖:

sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev

会出现:

E:软件包  libvtk5-dev 没有可安装候选

E:软件包  libtiff4-dev 没有可安装候选

解决方法:将代码改为

sudo apt-get install build-essential libgtk2.0-dev libvtk6-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev

如果继续报错,显示安装libjpeg-dev出现问题,需要打开源文件进行配置:

 sudo vim /etc/apt/sources.list 

并在最后一行添加:

deb http://security.ubuntu.com/ubuntu xenial-security main

然后对软件源进行更新:

sudo apt-get update

再次安装依赖:

sudo apt-get install build-essential libgtk2.0-dev libvtk6-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev

此时就可以成功安装了。

 ②下载OpenCV的安装包

下载路径:Releases - OpenCV

我是用的是OpenCV-3.4.12版本

下载资源安装包(“source”)后,解压到主目录打开。

③进行编译安装

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..

注意在安装过程中可能在出现一个ippicv包会下载很慢(有耐心且没网络波动可以和我一样选择等待),则可以中断安装(ctrl+c),手动下载:

https://github.com/opencv/opencv_3rdparty/blob/ippicv/master_20191018/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz

然后将下载下来的文件按照下面的方式进行修改:

修改ippcv cmaek, 在源码目录下3rdparty/ippicv/ippicv.cmake, ocv_download修改为下面这样,也就是原本是网址替换成自己存放ippcv tar的目录:file:///tmp/3rdparty/ippicv/。

ocv_download(FILENAME ${OPENCV_ICV_NAME}
               HASH ${OPENCV_ICV_HASH}
               URL
                 "${OPENCV_IPPICV_URL}"
                 "$ENV{OPENCV_IPPICV_URL}"
                 "file:///tmp/3rdparty/ippicv/"
               DESTINATION_DIR "${THE_ROOT}"
               ID IPPICV
               STATUS res
               UNPACK RELATIVE_URL)

修改完成后重新进行编译(-j4表示同时运行 4 个编译任务,这样可以更快地完成代码的编译过程,可以根据自己电脑的情况进行调整j后的数字)

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..
make -j4
sudo make install

这一步比较费时间,之后就可以编译运行了,可以使用pkg-config opencv --modversion(,pkg-config opencv4 --modversion命令对OpenCV4版本进行查询),对当前的OpenCV版本进行查询。

④可能遇到的问题

问题1:安装了OpenCV,但是查询不到安装版本

如果上述步骤完成后,可以pkg-config opencv --modversion后显示

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

表明可以查看当前搜索路径中是否包含opencv.pc文件。

默认的搜索路径为:/usr/local/lib,但是实际在安装OpenCV时,此文件在/usr/local/opencv3/lib/pkgconfig中,只需要将该文件复制到搜索路径下即可。

再次使用命令进行查询

pkg-config opencv --modversion

现在就可以查询到OpenCV3的版本号了!

问题2:编译ch5中的文件时,出现编译错误

在运行文件时,还需要更改CMakeLists.txt文件。

首先,需要添加OpenCV的包(使用cmake中的find_package宏命令)

然后,对文件进行编译():

mkdir buidl && cd build 
cmake -build ..
make

不过程序需要对当前目录下的图片进行读取,所以需要将两张图片(stereo对应的两个图片所在目录)复制到build目录中。

另外,对rgbd目录中的文件进行编译时,CMakeLists.txt文件还需要与fmt库进行关联。

然后对文件进行编译:

mkdir buidl && cd build 
cmake -build ..
make

然后就可以顺利运行了。

注:每个CMakeLists.txt文件都进行了更改,否则可能找不到相关的源文件导致编译失败。
  • 30
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值