ubuntu下安装OpenCV

Subaru Lai, 21 March 2018

最近在做的一个项目用到了YOLO进行目标识别,尝试在docker容器里装了两个YOLO的实现,一个是原作者给的基于darknet的实现,还有一个是基于tensorflow的实现–darkflow

使用的容器是基于tensorflow/tensorflow:1.4.0-gpu-py3这个镜像,安装YOLO的过程中,碰到的主要问题是OpenCV的编译安装,下面主要记录一下OpenCV的安装过程。

一、安装相关依赖

首先是安装OpenCV官网给出的依赖:

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install (python-dev python-numpy) libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # ()里那两个python可以不用装

额外的依赖:

$ sudo apt-get install pkg-config

二、下载OpenCV源码

下载:

$ wget https://github.com/opencv/opencv/archive/3.2.0.zip # 从github上直接下载或者clone也可
$ wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip

解压:

$ unzip opencv-3.2.0.zip
$ unzip opencv_contrib-3.2.0.zip

将opencv_contrib复制到opencv-3.2.0目录下:

$cp -r opencv_contrib-3.2.0 opencv-3.2.0

三、编译

在opencv-3.2.0目录下新建build文件夹,并使用cmake命令进行编译:

$ cd opencv-3.4.1
$ mkdir build
$ cd build

$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/notebooks/opencvInstall/opencv-3.2.0/opencv_contrib-3.2.0/modules/ ..  #此处路径需要注意

cmake成功后,使用make开始安装:

$ make -j8

$ make install

四、设置链接库共享

先在文件/etc/ld.so.conf中添加内容: /usr/local/lib(这个跟安装目录有关, {CMAKE_INSTALL_PREFIX}/lib),也可以在/etc/ld.so.conf.d 目录下增加一个conf文件(可以命名为 opencv.conf),同样添加内容: /usr/local/lib

然后执行:

$ sudo ldconfig -v

(五、指定opencv头文件位置)

这里使用pkg-config命令来完成。首先在 /etc/profile 中添加内容:

export  PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

通过pkg-config 命令可以列出关于opencv的配置信息:

$ pkg-config --libs opencv

note: 五的作用有待确认,我安装的时候没做第五步也没啥问题