Ubuntu 18.04.2下编译安装OpenCV 3.4.0 过程
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
安装依赖
linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get install build-essential
linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
linuxidc@linuxidc:~/linuxidc.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
添加
linuxidc@linuxidc:~/linuxidc.com$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
再次运行如下命令:
linuxidc@linuxidc:~/linuxidc.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、编译安装
解压源码
linuxidc@linuxidc:~/linuxidc.com$ tar xvzf opencv-3.4.0.tar.gz
在源码外创建一个编译文件夹,不要直接在源码文件夹里面操作,以防乱了源码,对后续开发不利
linuxidc@linuxidc:~/linuxidc.com$ mkdir linuxidcbuild
进入创建的文件夹
linuxidc@linuxidc:~/linuxidc.com$ cd linuxidcbuild/
执行cmake,生成makefile
linuxidc@linuxidc:~/linuxidc.com$ cmake ../opencv-3.4.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local
编译
linuxidc@linuxidc:~/linuxidc.com$ make
安装
linuxidc@linuxidc:~/linuxidc.com$ sudo make install
查看安装结果
linuxidc@linuxidc:~/linuxidc.com$ pkg-config --cflags --libs opencv
4、配置
安装完后配置
linuxidc@linuxidc:~/linuxidc.com$ sudo gedit /etc/ld.so.conf.d/opencv.conf
打开文件可能是空白的,没有关系,继续下一步,在文件末尾添加
/usr/local/lib
使配置生效
linuxidc@linuxidc:~/linuxidc.com$ sudo ldconfig
添加环境变量
linuxidc@linuxidc:~/linuxidc.com$ sudo gedit /etc/bash.bashrc
在文件最后添加
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
使环境变量生效
linuxidc@linuxidc:~/linuxidc.com$ source /etc/bash.bashrc
5、测试
下面用一个小程序测试一下
找到
cd到opencv-3.4.0/smaples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行
linuxidc@linuxidc:~/linuxidc.com$ cmake .
linuxidc@linuxidc:~/linuxidc.com$ make
linuxidc@linuxidc:~/linuxidc.com$ ./opencv_example
报错Gtk-Message: Failed to load module "canberra-gtk-module"
解决方法
sudo apt-get install libcanberra-gtk-module
如下图:
再次运行
linuxidc@linuxidc:~/linuxidc.com$ ./opencv_example
即可看到打开了摄像头,在左上角有一个Hello OpenCV
即表示配置成功。
- ubuntu 12 下安装配置编译使用opencv 2.3.0 全过程
- Ubuntu16.04+opencv3.4.0+opencv_contrib3.4.0+CUDA9.0 编译安装
- 在Ubuntu16.04上编译安装opencv2.1.13全过程(附资源)
- Ubuntu 12.04 编译安装 OpenCV2.4.8 过程笔记
- Ubuntu 12.04 编译安装 OpenCV2.4.8 过程笔记
- Ubuntu 16.04编译安装最新的OpenCV3.2
- Ubuntu16.04+anaconda2+caffe+ssd+opencv3.1.0在编译caffe过程中的问题及解决方法 主要遇到三个问题,前两个是caffe在cmake过程中的问题,后一
- ubuntu 上opencv的安装编译
- ubuntu编译安装opencv3到anaconda虚拟环境(virtual env同理)
- Ubuntu下编译安装OpenCV 2.4.7并读取摄像头
- Ubuntu (Debian) 编译安装Mariadb过程,亲测,有坑!
- Ubuntu 10.10 编译安装OpenCV 2.2
- caffe搭建--caffe在invidia+cpu 酷睿2Q9300 + ubuntu16.04.2上面的安装和编译过程
- [环境配置]Ubuntu 16.04 源码编译安装OpenCV-3.2.0+OpenCV_contrib-3.2.0及产生的问题
- Ubuntu10.04下安装OpenCV2.0过程及说明
- ubuntu14.04安装cuda8.0后,编译安装opencv2.4.13.4
- ubuntu编译安装opencv3到anaconda虚拟环境(virtual env同理)
- Ubuntu16.04+Cuda9.1+Cudnn7.5+Anaconda3(Python3.6)+opencv3.4.1+caffe编译安装(多坑已排!)
- ubuntu中手动编译源码安装Xorg-server过程中依赖关系的解决
- 在Ubuntu 16.04 上编译安装OpenCV3.2.0(Cmake + python3 + OpenCV3)