最近在跑PL-SLAM,一开始配置的OpenCV版本为3.1.0,在编译(make)过程中,出现如下问题:

/home/hlx/pl-slam-master/../stvo-pl-master/include/stereoFrame.h:35:32: fatal error: opencv2/ximgproc.hpp: 没有那个文件或目录

造成问题的主要原因是ximgproc模块在opencv的扩展模块opencv_contrib中,opencv在3.2版本之后引入了ximgproc模块,模块主要进行线特征的操作(分割,提取等)所以要先将扩展模块opencv_contrib装好再进行之后的操作

进行OpenCV3.2+OpenCV3.2_contrib的安装:

1.下载

github上的下载地址:https://github.com/opencv

在opencv和opencv_contrib中分别选择版本相同的release包:

注意:在module文件夹下包含了opencv_contrib中所有的组件,如果之后在调用opencv的时候缺少了里面包含的文件,都可以用关联opencv_contrib的方式解决

 

2.安装:

首先对之前已有的Opencv进行卸载

首先进入进行编译的build文件夹,打开终端之后输入:

sudo make uninstall

cd ..

sudo rm -r build

sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*

之后开始安装,首先安装依赖项

sudo apt-get install build-essential

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

sudo apt-get update

之后进行contrib以及opencv的整体安装

将下载包解压后,将opencv_contrib-3.2.0移动至opencv-3.2.0目录下

进入opencv-3.2.0文件,打开终端进行

mkdir build;

cd build;

之后进行cmake:

cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>

在<opencv_contrib>中输入 opencv_contrib路径,在<opencv_source_directory>中输入opencv路径即可

如:cmake -D OPENCV_EXTRA_MODULES_PATH=/home/hlx/opencv_contrib-3.2.0.modules /home/hlx/opencv-3.2.0

cmake成功之后执行

make -j4

sudo make install

 

过程中可能会遇到的问题:

1.make过程中:

    /home/hlx/opencv-3.2.0/opencv_contrib-3.2.0/modules/hdf/include/opencv2/hdf/hdf5.hpp:40:18: fatal error: hdf5.h: 没有那个文件或目录 

    compilation terminated.

解决方法:

    在终端中输入 locate hdf5.h

    发现在/usr/include/hdf5/serial/hdf5.h

    在opencv_contrib-3.1.0/modules/hdf/include/opencv2/hdf/hdf5.hpp 文件中修改第40行

    将#include <hdf5.h> 修改成#include “/usr/include/hdf5/serial/hdf5.h”   

 

2.make过程中:

  fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h: No such file or directory #include “LAPACKE_H_PATH-NOTFOUND/lapacke.h”

解决方法:

    sudo apt-get install liblapacke-dev checkinstall

    同上,找到 lapacke.h 文件,将

    #include “LAPACKE_H_PATH-NOTFOUND/lapacke.h”

    修改为

    #include “lapacke.h”

3.cmake过程中

      — Downloading v3.1.0/protobuf-cpp-3.1.0.tar.gz…

      CMake Error at cmake/OpenCVUtils.cmake:1043 (file):

      file DOWNLOAD HASH mismatch

    解决方法:

    根据错误提示是下载不到对应的文件,多次cmake之后莫名其妙就解决了。。。。。

 


版权声明:本文为hlxCSDN原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hlxCSDN/article/details/82768767