ubuntu17.04环境下opencv3.2.0配置

实验环境
- CPU:Ryzen 1800x
- 系统:ubuntu 17.04 64bit
- 软件环境:python2.7 + python3.5 + cuda开发环境(cuda8.0 cuddn 5.1)
因实验要求,需要对图片进行灰度编码,自然而然想到利用openCV库结合python进行,但由于系统较新,且网上教程多为老版本,新教程也有些小错误,特记下配置过程
- 预配置环境:openCV 3.2.0(cuda加速+python3环境+contrib扩展包)
openCV基础环境配置
- 对源的更新
1 | sudo apt-get uupdate |
- 环境搭建
1 | sudo apt-get install build-essential cmake cmake-qt-gui pkg-config git |
- 图像格式相关
1 | sudo apt-get install libpng-dev libjpeg-dev libtiff5-dev |
- GUI相关
1 | sudo apt-get install libgtk2.0-dev |
- 视频格式相关
1 | sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev |
- C++多线程相关
1 | sudo apt-get install libtbb2 libtbb-dev |
- 摄像头相关
1 | sudo apt-get install libdc1394-22-dev |
- openGL相关
1 | sudo apt-get install libgtkglext1 libgtkglext1-dev |
注意:针对可选安装libjasper-dev包,该包是针对图像格式JPEG-2000的开发包。在最新的ubuntu17.04中,已放弃对该包的安装支持,如涉及到对该格式的处理,可以到https://packages.ubuntu.com/trusty/libjasper-dev ubuntu的官方包管理网址获取,该包需要依赖包libjasper1,请一并下载。但两包无法直接通过ubuntu软件安装器安装,可以通过dpkg命令安装:
1 | sudo dpkg -i <package.deb> |
openCV下载与本地编译
这次安装版本为3.2.0,需要下载opencv-3.2.0与opencv_contrib-3.2.0(后者会在cmake配置的时候用到),这是因为opencv3以后SIFT和SURF之类的属性被移到了contrib中。
下载采用wget命令:
1 | # 从github上直接下载或者clone也可 |
分别解压文件:
1 | unzip opencv-3.2.0.zip |
获得opencv-3.2.0与opencv_contrib-3.2.0两个文件夹,打开opencv3.2.0文件夹
新建build文件夹,作为编译文件路径:
1 | cd opencv-3.2.0 |
打开cmake图形界面:
1 | sudo cmake-gui |
- 打开cmake图形界面,源码位置设置为opencv-3.2.0文件夹,binaries(二进制文件)位置设为新建build文件夹位置;
- 在search框输入opengl,勾选上(为了避免opengl版本问题导致的不兼容,这里最好选择使用opencv自带的openGL;
- 在search框输入opencv_extra_modules_path,在后面value值处填上两个包中另一个opencv_contrib-3.2.0下modules的路径;
- 然后点击configure,cmake会自动进行参数检测,并下载一些相关包;
注意:可能遇到ippicv_linux_20151201.tgz文件下载失败的问题,(墙的原因),解决办法为百度搜索下载(例如CSDN下载http://download.csdn.net/download/lx928525166/9479919,并cp命令复制到/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e文件夹下。(最后一个文件夹名可能不一样)
- 最后cmake中点击Generate,生成编译文件;
- 然后cd命令进build文件夹
1 | sudo make -j16 # -j后面数字为采用线程数,根据个人配置而定 |
- 进度到100%表示安装成功。
python环境的绑定
我们已经成功安装openCV,且在配置时openCV会自动与python进行绑定,我们可以通过以下方式进行测试:
重启
1
sudo reboot
sudo reboot
测试,在python中,若无报错,即可认为绑定成功。
1
import cv2
我们也可以通过安装预编译的第三方所提供的openCV
1 | pip install opencv-python opencv-contrib-python |

+红外收发管+智能小车——实现小车远程控制/unnamed-file%20%5B原始大小%5D.jpg)
+红外收发管+智能小车——实现小车远程控制/20130831204912500-0-1.jpg)
+红外收发管+智能小车——实现小车远程控制/6619373360026755635-1.jpg)
+红外收发管+智能小车——实现小车远程控制/c259e358ccbf6c813fdb4c76bb3eb13531fa409f-1.png)
+红外收发管+智能小车——实现小车远程控制/20120921154663386338-1.jpg)
+红外收发管+智能小车——实现小车远程控制/201453125427363-1.jpg)
+红外收发管+智能小车——实现小车远程控制/20170701222333.jpg)
的原生体验/marlin-black-en_US-1.jpg)
的原生体验/Screenshot_20170622-234628-1.png)