Linux环境安装OpenCV

这里的步骤已经在Ubuntu10.04(译者使用的是Ubuntu14.04)上进行了测试,但对于其他的发行版本也应该可以正常运行。

需要的软件包

  • GCC 4.4或更高
  • CMake 2.8.7或更高
  • Git
  • GTK+2.x或更高,并包含头文件(libgtk2.0-dev)
  • pkg-config
  • Python 2.6或者更高和Numpy1.5或者更高的开发包(python-dev, python-numpy)
  • ffmpeg或者libav开发包:libavcode-dev、libavformate-dev、libswscale-dev
  • 可选包 libtbb2、libtbb-dev
  • 可选包 libdc1394 2.x
  • 可选包 libjpeg-dev、libpng-dev、libtiff-dev、libjasper-dev、libdc1394-22-dev
    这些包可以在终端控制台使用如下的命令进行安装,或者使用Synaptic Manager。
$ 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

获取OpenCV源代码

你可以使用最新的稳定版本,或者也可以从Git repository抓取最新快照。

获取最新的稳定OpenCV版本

  1. 进入我们的下载页面
  2. 下载源码包并且解压它。

从Git Repository获取最前沿的OpenCV

启动Git客户端clone OpenCV respository。如果你需要来自OpenCV contrib repository的模块,这个也需要clone。

例如:

cd ~/<my_working_directory>
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

通过CMake使用源代码构建OpenCV

  1. 创建一个临时目录,我们标注为< cmake_build_dir>,这里将被放入生成的Makefile文件、项目文件、还有object文件和编译出的二进制文件都会放到这里面。
    例如:
    cd ~/opencv
    mkdir build
    cd build
  2. 配置运行cmake [< some optional parameters>]
    例如:
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. 或者cmake-gui:
  • 设置完整的OpenCV源码路径,例如/home/user/opencv
  • 设置完整的< cmake-build_dir>路径,例如/home/user/opencv/build
  • 设置可选参数
  • 运行‘Configure’
  • 运行‘Generate’
  1. 参数说明:
  • 编译类型:CMAKE_BUILD_TYPE=Release\Debug
  • 一起编译的opencv_contrib模块设置OPENCV_EXTRA_MODULES_PATH到< path to opencv_contrib/modules/>
  • 设置BUILD_DOCS用于产生文档。
  • 设置BUILD_EXAMPLES用来编译所有的例子。
  1. 编译Python选项,设置如下的Python参数:
  • PYTHON2(3)_EXECUTABLE = < path to python>
  • PYTHON_INCLUDE_DIR = /usr/include/python< version>
  • PYTHON_INCLUDE_DIR2 = /usr/include/x86_64-linux-gnu/python< version>
  • PYTHON_LIBRARY = /usr/lib/x86_64-linux-gnu/libpython< version>.so
  • PYTHON2(3)_NUMPY_INCLUDE_DIRS = /usr/lib/python< version>/dist-packages/numpy/core/include/
  1. Java编译选项:
  • 不设置参数:BUILD_SHARED_LIBS
  • BUILD_EXAMPLES、BUILD_TESTS、BUILD_PERF_TESTS这些都是有用选项,但并不设置。这些将与OpenCV使用静态链接并消耗大量内存。
  1. 编译,从创建的目录执行make,建议使用多线程执行:
    例如:
    make -j7 # runs 7 jobs in parallel
  2. 构建文档选择,进入 < cmake_build_dir/doc/> 并运行make使用目标为 “html_docs”:
    例如:
    cd ~/opencv/build/doc/
    make -j7 html_docs
  3. 安装库文件,从创建的目录执行:
    sudo make install
  4. 运行测试选项:
  • OpenCV extra repository获取需要测试的数据。
    例如:
    git clone https://github.com/opencv/opencv_extra.git
  • set OPENCV_TEST_DATA_PATH环境变量到< path to opencv_extra/testdata>。
  • 在创建的目录执行例子。

注意:
如果编译出来的库太大存在空间限制问题(例如:android)你需要使用install/strip命令,让其尽可能的变到最小。strip过的库文件可以缩小两倍,然而我们不建议这样使用除非这个真的很有必要。