0 前言
最近的项目需要,经常配置opencv,在window,ubuntu,以及阿里云服务器上都配置过,遇到过很多问题,这里记录一下,给后面的朋友指个路
1 安装环境
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
2 下载opencv及opencv_contrib
需要注意opencv的版本,最常用,最稳定的版本我觉得是3.4.1,决定经典。很多公司配置都用这个版本
虽然现在都到opencv4,但是公司的项目上跑的一般都是旧的,所以根据自己的需要下载opencv版本。
注意:git clone默认下载最新的版本,最好不要用
建议下载zip,在右键蓝色区域鼠标右键,复制下载连接,然后到命令行中下载
opencv_contrib需要和opencv的版本保持一致,否则编译出各种奇葩的问题
因此下载也不要git clone,因为无法控制版本。正确的下载方法同OpenCV一样。
2.1 下载opencv3.4.1
$ wget https://github.com/opencv/opencv/archive/3.4.1.zip
解压文件夹
$ unzip 3.4.1
切换路径
$ cd opencv-3.4.1
2.2 下载opencv_contrib 3.4.1
将opencv_contrib文件夹下载到opencv-3.4.1文件夹中
$ wget https://github.com/opencv/opencv_contrib/archive/3.4.1.zip
$ unzip 3.4.1.zip
3 编译
1. 创建编译文件夹:
$ mkdir my_build_dir
$ cd my_build_dir
2. cmake编译:
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
要是用SIFT的话,需要安装第三方库xfeatures2d.这是opencv的附属库
命令就是在上面的基础上加了一个选项
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.1/modules ..
opencv_contrib的编译容易出现问题
3. 执行命令如下命令,漫长的编译过程
$ sudo make
$ sudo make install
4. 配置一些OpenCV的编译环境
- 将OpenCV的库添加到路径,从而可以让系统找到
$ sudo vim /etc/ld.so.conf.d/opencv.conf
- 执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
- 执行如下命令使得刚才的配置路径生效
$ sudo ldconfig
- 配置bash
$ sudo vim /etc/bash.bashrc
在最末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效
$ source /etc/bash.bashrc
更新
$ sudo updatedb
至此所有的配置都已经完成
4 编译过程中可能遇到的问题
- 编译OpenCV 以及 openc_contrib 提示缺少boostdesc_bgm.i文件出错的解决
下载没有下载成功的文件到文件夹中https://blog.youkuaiyun.com/u011736771/article/details/85960300
- 提示在“opencv2/xfeatures2d/cuda.hpp”中不存在该文件,但是该文件实际是存在的:
将opencv_contrib/modules/xfeatures2d/include中的xfeatures2d文件夹和xfeatures2d.hpp复制到home/zhao/opencv_3.4.1/modules/stitching/include/opencv2中
- Ubuntu18.04下安装OpenCv依赖包libjasper-dev无法安装的问题
$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
$ sudo apt update
$ sudo apt install libjasper1 libjasper-dev