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版本
- 进入我们的下载页面。
- 下载源码包并且解压它。
从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
- 创建一个临时目录,我们标注为< cmake_build_dir>,这里将被放入生成的Makefile文件、项目文件、还有object文件和编译出的二进制文件都会放到这里面。
例如:cd ~/opencv
mkdir build
cd build - 配置运行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’
- 参数说明:
- 编译类型:CMAKE_BUILD_TYPE=Release\Debug
- 一起编译的opencv_contrib模块设置OPENCV_EXTRA_MODULES_PATH到< path to opencv_contrib/modules/>
- 设置BUILD_DOCS用于产生文档。
- 设置BUILD_EXAMPLES用来编译所有的例子。
- 编译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/
- Java编译选项:
- 不设置参数:BUILD_SHARED_LIBS
- BUILD_EXAMPLES、BUILD_TESTS、BUILD_PERF_TESTS这些都是有用选项,但并不设置。这些将与OpenCV使用静态链接并消耗大量内存。
- 编译,从创建的目录执行make,建议使用多线程执行:
例如:make -j7 # runs 7 jobs in parallel
- 构建文档选择,进入 < cmake_build_dir/doc/> 并运行make使用目标为 “html_docs”:
例如:cd ~/opencv/build/doc/
make -j7 html_docs - 安装库文件,从创建的目录执行:
sudo make install
- 运行测试选项:
- 从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过的库文件可以缩小两倍,然而我们不建议这样使用除非这个真的很有必要。