##Opencv+Ubuntu编译安装
缘由
Opencv作为一个十分强大的图像处理工具,它极大的方便了我们对图像进行处理,在机器视觉领域,opencv有着十分高的地位。
故,我们无可避免的需要借助Opencv来完成我们的开发,
###了解Opencv
####维基百科介绍
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。
####应用领域
OpenCV可用于解决如下领域的问题:
- 增强现实
- 人脸识别
- 手势识别
- 人机交互
- 动作识别
- 运动跟踪
- 物体识别
- 图像分区
- 机器人
其他的不在这介绍了,我们此篇文章是基于Ubuntu平台的编译安装的。
准备安装环境
- Ubuntu系统
- 安装依赖
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
-
下载源码
http://opencv.org/opencv-3-3.html
或者https://pan.baidu.com/s/1miGDY0g 提取码:z3e1 -
或者
git clone https://github.com/opencv/opencv.git
准备编译
下载的源码文件夹为opencv,在opencv下新建build文件夹,准备存放编译生成的文件。
cd ~/opencv
mkdir build
cd build
前面应该都没有问题,接下来可能会出现一些问题
配置CMake
- 配置opencv基本库,如果在其他平台或者有其他特殊功能可能配置有所不同
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
其中"…"为指定源码路径,即当前目录的上一级,另外可以加入许多参数,不加则为默认值,比如WITH_CUDA开关参数,默认为打开若要关闭,则需要加入 -D WITH_CUDA=OFF
即
cmake -D CMAKE_BUILD_TYPE=Release -D WITH_CUDA=OFF -D CMAKE_INSTALL_PREFIX=/usr/local ..
WITH_CUDA关闭后编译的东西少一些应该会快一些,一般都不需要opencv支持cuda,可以关闭。
执行上面命令后,如果遇到
一直停在这,网速哪里去了,IPPICV是一个三方库,没有集成到opencv里面,其实我们可以稍微修改代码,它就不会去下载了,或者一直等会报一个下载失败的警告,如下图
或者改一下两个文件:
opencv/cmake/OpenCVFindIPP.cmake
opencv/cmake/OpenCVFindIPPIW.cmake
opencv/cmake/OpenCVFindIPP.cmake选中的一行加一个#注释了
opencv/cmake/OpenCVFindIPPIW.cmake中选中的一行加一个#注释了
编译安装
make -j4
sudo make install
####opencv_contrib模块
如果你要用到opencv的tracking模块,你需要安装opencv_contrib,
https://github.com/opencv/opencv_contrib
上面链接有安装方法。
#####Error:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PROTOBUF_LIBRARY (ADVANCED)
解决:
sudo apt-get install libprotobuf-dev protobuf-compiler
配置使用环境
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
sudo gedit /etc/profile
在profile中最后面添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
简单测试
在linux系统的终端输入:
$ pkg-config --cflags opencv
-I /usr/local/opencv/include/opencv -I /usr/local/opencv/include
编译时需要的头文件
$pkg-config --libs opencv
/usr/local/opencv/lib/libopencv_calib3d.so /usr/local/opencv/lib/libopencv_core.so
编译时需要的链接库
$ python
>>> import cv2
>>>
如果不报错说明成功了。
###其中还有许多坑,当时没有记下来,以后遇到再加上