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 后面是版本号
注意:以下三条命令要按照顺序进行安装
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.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
# 打开以下文件
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.1 验证opencv版本
pkg-config opencv --modversion
5.2 测试
cd /opencv/samples/cpp/example_cmake/
cmake .
make
./opencv_example
执行可执行文件./opencv_example
出现摄像头应该就是安装成功了。
Ubuntu18.04安装opencv和opencv_contrib(详细步骤及常见问题解决)
OpenCV 源码安装及错误解决
Ubuntu安装OpenCV
Ubuntu下opencv3.3和opencv_contrib的编译安装
笔者水平有限,若有不足之处,请多多包涵 !