Ubuntu 安装 C++ opencv 和opencv_contrib (主要记录出现的问题以及解决方法)

安装及验证步骤:

1、opencv以及opencv_contrib版本gitee快速下载

git clone -b 3.4.10 https://gitee.com/mirrors/opencv.git
git clone -b 3.4.10 https://gitee.com/mirrors/opencv_contrib.git

可以将下载下来的文件夹放置到/home/目录下,可以重新命名opencv-3.4.10文件夹为opencv,同样可以命名opencv_contrib

然后将opencv_contrib文件夹移至opencv下,方便后续的安装。

注意:-b 后面是版本号

2、安装之前首先需要安装依赖环境

注意:以下三条命令要按照顺序进行安装

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

安装第三条命令时遇到以下错误:

Unable to locate package libjasper-dev

解决办法:参考连接

3、安装

3.1 进入opencv文件夹下新建build文件夹:

cd opencv/
mkdir build

3.2 然后执行以下命令:

 cmake -D CMAKE_BUILD_TYPE=RELEASE  -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/syd/opencv/opencv_contrib/modules/ ..

**注意:OPENCV_EXTRA_MODULES_PATH的路径需要按照自己实际路径进行修改,可以使用pwd命令进行查看opencv_contrib/modules/的绝对路径。后面的两个..不要忘记 **

3.3 然后执行以下命令:

sudo make -j8

注意:一般在执行这一步命令的时候都会遇到问题,下面一一介绍,可能每个问题出现的顺序顺序不太一致。

3.3.1 出现一系列未定义引用问题

这应该是由于当前系统中安装了anaconda导致的,错误类似以下内容:

/home/syd/anaconda3/lib/libobject-2.0.so.0 对'ffi_type_void@LIBFFI_BASE_7.0'未定义的引用

解决方法:

cd /usr/lib/x86_64-linux-gnu
sudo ln -s ~/anaconda3/lib/libzstd.so.1
sudo ldconfig

sudo ln -s ~/anaconda3/lib/libffi.so.7
sudo ldconfig

sudo ln -s ~/anaconda3/lib/libpcre.so.1
sudo ldconfig

参考

3.3.2 编译xfeatures2d出现头文件包含缺失的问题

错误类似以下内容:

fatal error:boostdesc_bgm.i:没有那个文件或目录
	#include “boostdesc_bgm.i”

解决方法:将以下链接所提供的的文件复制到opencv_contrib/modules/xfeatures2d/src/路径下即可,继续进行编译

阿里云盘链接 提取码:su99

3.3.3 编译时出现头文件cuda.hpp找不到的状况

错误类似以下内容:

/home/syd/opencv/modules/stitching/include/opencv2/stitching/detail/src/matchers.cpp
52:12: fatal error: opencv2/xfeature/cuda.hpp

解决的办法:

打开上述报错的文件:

cd /home/syd/opencv/modules/stitching/include/opencv2/stitching/detail/src/
sudo vim matcers.cpp

可以看到在52行左右有这样的代码:

#iifdef HAVE_OPENCV_XFEATURES2D
#include “/opencv2/xfeatures2d/cuda.hpp”
#endif

将上述代码中的第二行修改为cuda.hpp绝对路径,,这里的路径要根据实际情况修改:

#include"/home/syd/opencv/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"

注意:对于第三类问题,可能还会出现其他问题,可以具体问题具体分析

3.4 执行安装命令 (不要忘记!!!)

sudo make install

4、配置环境

#  打开以下文件
sudo gedit /etc/ld.so.conf
#加入一下语句
include /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
#校验命令

5、校验安装是否成功

5.1 验证opencv版本

pkg-config opencv --modversion

5.2 测试

cd /opencv/samples/cpp/example_cmake/
cmake .
make
./opencv_example

执行可执行文件./opencv_example出现摄像头应该就是安装成功了。

6、参考

Ubuntu18.04安装opencv和opencv_contrib(详细步骤及常见问题解决)

OpenCV 源码安装及错误解决

Ubuntu安装OpenCV

Ubuntu下opencv3.3和opencv_contrib的编译安装

笔者水平有限,若有不足之处,请多多包涵 !

你可能感兴趣的:(C++,cmake,opencv,ubuntu,c++)