Installation in Linux
以下步骤均在Ubuntu 10.04上进行了测试, 但是在其他发行版中也可以工作.
PS:我在Ubuntu 14.04 LTS上用官网给的这个方法成功安装了OpenCV2.4.8和OpenCV2.4.10,但是OpenCV3.0Alpha及Beta却没有安装成功.
需要的软件包
- GCC 4.4.x or later
- CMake 2.8.7 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev)
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
- [optional] libtbb2 libtbb-dev
- [optional] libdc1394 2.x
- [optional] 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源码
可以使用 OpenCV 最新的稳定版或者 从我们的Git repository中抓取最新的节点。
获得OpenCV最新的稳定版
- 跳转到 downloads page.
- 下载源码文件并解压。
从Git Repository中获得最新的OpenCV
登录Git客户端,克隆 OpenCV repository。如果需要从OpenCV contrib repository 获取modules,同样进行克隆。
举个例子:
cd ~/<my_working_directory>
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
使用CMake从源码编译OpenCV
-
创建一个临时文件夹, 我们可以将其表示为 <cmake_build_dir>,用于存放产生的Makefiles,project files以及object files和output binaries;进入这个临时文件夹。
例如:
cd ~/opencv mkdir build cd build
-
配置。运行 cmake [<some optional parameters>] <path to the OpenCV source directory>
例如:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
或者 cmake-gui
- 设置OpenCV source code的路径全称,例如: /home/user/opencv
- 设置<cmake_build_dir>的路径全称,例如: /home/user/opencv/build
- 设置可选的参数
- 运行 “Configure”
- 运行“Generate”
-
一些参数的说明
- 编译类型: CMAKE_BUILD_TYPE=Release\Debug
- 为了从opencv_contrib编译modules,设置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/>,对目标“html_docs”执行make命令
例如:
cd ~/opencv/build/doc/ make -j7 html_docs
-
安装库,在编译文件夹(即前面创建的临时文件夹)中执行
sudo make install
-
[可选] 运行测试
- 从OpenCV extra repository获得测试数据
例如:
git clone https://github.com/Itseez/opencv_extra.git
- 设置OPENCV_TEST_DATA_PATH 环境变量为<path to opencv_extra/testdata>。
- 在编译文件夹(即前面创建的临时文件夹)中执行测试。
例如:
<cmake_build_dir>/bin/opencv_test_core
注意:
如果创建出来的库的大小是个非常重要的问题 (假设是在Android下编译),可以使用install/strip命令获得尽可能小的库的体积。Thestripped version appears to be twice as small.但是, 除非这些多余的字节(文件大小)确实是个问题,我们一般不推荐使用这个命令。