1、下载opencv 安装包opencv 和opencv_contrib
https://codeload.github.com/opencv/opencv_contrib/zip/3.4.8
https://codeload.github.com/opencv/opencv/zip/3.4.8
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
3.下载boostdesc_bgm.i等库文件
百度云链接:百度网盘 请输入提取码
提取码:e1wc
下载后解压,将所有内容复制到opencv_contrib/modules/xfeatures2d/src/下
4.编译安装
- 将opencv文件解压
- 将contrib解压到opencv内
- 在opencv内新建build文件夹
- 进入build中执行以下命令
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv-3.2.0/opencv_contrib3.2.0/modules/ .. (后边的路径是指opencv_contrib中modules所在的路径)
(后边有两个点不要忘记)
sudo make -j8
sudo make install
编译安装结束,使用 pkg-config --modversion opencv 使用该命令进行查看版本,验证安装成功
编译过程会遇到一些问题
一、缺少文件,需要下载后再编译,boostdesc_bgm.i参考这篇:安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案(附带百度云资源)_AlexWang30的博客-CSDN博客_boostdesc_bgm.i
二、下载停止,IPPICV: Download: ippicv_2017u3_lnx_intel64_general_20170822.tgz 参考这篇:源码编译opencv卡在IPPICV: Download: ippicv_2017u3_lnx_intel64_general_20170822.tgz解决办法_真理永恒-CSDN博客_ippicv
1. 手动下载ippicv_2017u3_lnx_intel64_general_20170822.tgz(根据实际,不同Opencv版本文件名可能不一样)
2. 修改opencv里相关配置文件"~/opencv-3.4.8/3rdparty/ippicv/ippicv.cmake"
>>>>
set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
ocv_download(FILENAME ${OPENCV_ICV_NAME}
HASH ${OPENCV_ICV_HASH}
URL
"${OPENCV_IPPICV_URL}"
"$ENV{OPENCV_IPPICV_URL}"
-(Line 47) "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
+ "file:~/Download/filename" #(仅供参考,根据自己的路径填写)
DESTINATION_DIR "${THE_ROOT}"
ID IPPICV
STATUS res
UNPACK RELATIVE_URL)
<<<<
```
三、编译过程,文件找不到,fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
报错位置整理:
# include "opencv2/xfeatures2d/cuda.hpp"
# include <opencv2/xfeatures2d.hpp>
# include "opencv2/xfeatures2d.hpp"
# include "opencv2/xfeatures2d/cuda.hpp"
# include "opencv2/xfeatures2d/nonfree.hpp"
# include "opencv2/xfeatures2d.hpp"修改:
# include "~/opencv-3.4.8/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
# include "~/opencv-3.4.8/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"
# include "~/opencv-3.4.8/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"
# include "~/opencv-3.4.8/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
# include "~/opencv-3.4.8/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d/nonfree.hpp"# include "~/opencv-3.4.8/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"