一、下载
- opencv版本:https://github.com/opencv/opencv/releases
- opencv_contrib版本:https://github.com/opencv/opencv_contrib
!!!注意:若要选择版本,是在左上角 Tag 里选。
选择之后的 opencv 和 contrib 版本一定要对应!!!
(这里选择 3.4.9 进行安装) - 把opencv_contrib-3.4.9文件夹放入opencv-3.4.9目录下,并重命名为opencv_contrib
二、安装
- 添加opencv所需要的依赖库:
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
- 以上步骤完成后,进入下载的opencv-3.4.9目录,创建build目录:
mkdir build
- 进入build目录:
cd build
- 开始编译,执行(注意后面的两个点不能少):
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
- 接下来,执行:
make -j8
!!!注意:若之前已安装过Anaconda,则编译过程中可能会出现如:Makefile:160: recipe for target ‘all’ failed此类的错误!!!
- 原因是:安装了 Anaconda 后,python 和 gcc 用的都是 Anaconda 的版本,Anaconda 的 gcc 版本 system defalut 的版本低(参考:https://stackoverflow.com/questions/40322301/compile-opencv-3-on-ubuntu-16-04-linking-error-usr-lib-x86-64-linux-gnu-libsox)。
- 解决办法:(1)先在系统变量中注释 Anaconda 的环境变量:
sudo gedit ~/.bashrc
如下如所示:
重启电脑后生效;然后按照上述4、5中的步骤重新编译、执行。若上述错误依然存在,需要(2)在 cmake 中增加 -D WITH_OPENMP=ON 选项。(因此我注释掉 Anaconda 的环境变量之后编译就通过了,所以没有做这一步;但看到类似的博客推荐要进行此操作,所以大家可根据实际情况酌情处理)
- 安装opencv:
sudo make install
三、配置环境变量
- 首先将 opencv 的库添加到路径,从而可以让系统找到:
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加:
/usr/local/lib
执行如下命令使得刚才的配置路径生效:
sudo ldconfig
- 配置 bash,执行如下命令:
sudo gedit /etc/bash.bashrc
在末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效:
source /etc/bash.bashrc
更新:
sudo updatedb
至此,所有配置都已完成。
四、环境测试
make(makefiles)编译方式:
- cd 到 opencv-3.4.9/smaples/cpp/example_cmake 目录下,可以看到这个目录里官方已经给出了一个 cmake 的 example,我们可以拿来测试下。
- 按顺序执行,执行过程如下:
# 进入opencv的安装目录
cd opencv-3.4.9/samples/cpp/example_cmake
cmake .
make
./opencv_example
如果你的ubuntu有摄像头,就可以看到摄像头打开,并且左上角有“hello opencv”的字样,如下图所示:
配置成功啦!