Opencv大家应该很熟悉了,即使没有使用过,也应该都听过,它是经典的图像处理库,OpenCV在Windows下安装是很简单的,只需要配置DLL即可。但是在Linux下,因为Linux各种发行版本多种多样,所以我们只有自己通过编译源码的方式来安装OpenCV了,本文测试的是Ubuntu 18.04.2,源码安装会自动根据你当前的Ubuntu系统中安装的组件来编译OpenCV源码,所以说你编译好的这份OpenCV库是独一无二的,移到别的地方就不行了的。
这里讲解如何在Ubuntu 18.04.2下编译安装OpenCV 3.4.0步骤过程。
1、源码下载
OpenCV官网:https://opencv.org/
github地址: https://github.com/opencv/opencv/releases/tag/3.4.0
直接下载 https://github.com/opencv/opencv/archive/3.4.0.tar.gz
目前最新版本是OpenCV 4.1.0,不过我没有用最新版本,本文测试的是OpenCV 3.4.0。
2、安装依赖
首先看官方的安装说明,这个非常有必要,官方写的比较好,基本按照官方说明进行操作就可以了。
官方编译安装说明:https://docs.opencv.org/3.4.1/d7/d9f/tutorial_linux_install.html
安装OpenCV需要先安装必要的工具包。
- GCC 4.4.x 或更新
- CMake 2.8.7 或更高版本
- Git
- GTK+2.x 或更高版本, including 头 (libgtk2.0-dev)
- pkg-config
- Python 2.6或更高版本以及带有开发人员包的Numpy 1.5或更高版本(Python -dev, Python - Numpy)
- ffmpeg或libav开发包:libavcodec-dev,libavformat-dev,libswscale-dev
- [可选] libtbb2 libtbb-dev
- [可选] libdc1394 2.x
- [可选] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
- [可选] CUDA Toolkit 6.5 or higher
安装依赖
558idc@558idc:~/558idc.com$ sudo apt-get install build-essential
558idc@558idc:~/558idc.com$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
558idc@558idc:~/558idc.com$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
如果提示 E: 无法定位软件包 libjasper-dev
添加
558idc@558idc:~/558idc.com$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
再次运行如下命令:
558idc@558idc:~/558idc.com$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
检查自己安装的gcc、cmake的版本是否太低。
3、编译安装
解压源码
558idc@558idc:~/558idc.com$ tar xvzf opencv-3.4.0.tar.gz
在源码外创建一个编译文件夹,不要直接在源码文件夹里面操作,以防乱了源码,对后续开发不利
558idc@558idc:~/558idc.com$ mkdir 558idcbuild
进入创建的文件夹
558idc@558idc:~/558idc.com$ cd 558idcbuild/
执行cmake,生成makefile
558idc@558idc:~/558idc.com$ cmake ../opencv-3.4.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local
编译
558idc@558idc:~/558idc.com$ make
安装
558idc@558idc:~/558idc.com$ sudo make install
查看安装结果
558idc@558idc:~/558idc.com$ pkg-config --cflags --libs opencv
4、配置
安装完后配置
558idc@558idc:~/558idc.com$ sudo gedit /etc/ld.so.conf.d/opencv.conf
打开文件可能是空白的,没有关系,继续下一步,在文件末尾添加
/usr/local/lib
使配置生效
558idc@558idc:~/558idc.com$ sudo ldconfig
添加环境变量
558idc@558idc:~/558idc.com$ sudo gedit /etc/bash.bashrc
在文件最后添加
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
使环境变量生效
558idc@558idc:~/558idc.com$ source /etc/bash.bashrc
5、测试
下面用一个小程序测试一下
找到
cd到opencv-3.4.0/smaples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行
558idc@558idc:~/558idc.com$ cmake .
558idc@558idc:~/558idc.com$ make
558idc@558idc:~/558idc.com$ ./opencv_example
报错Gtk-Message: Failed to load module "canberra-gtk-module"
解决方法
sudo apt-get install libcanberra-gtk-module
如下图:
再次运行
558idc@558idc:~/558idc.com$ ./opencv_example
即可看到打开了摄像头,在左上角有一个Hello OpenCV
即表示配置成功。