OpenCV 4.10.0
开放源码计算机视觉
|
上一教程: 适用于基于 ARM 的 Linux 系统的交叉编译
下一教程: 图像入门
原始作者 | Randy J. Ray |
兼容性 | OpenCV >= 3.1.0 |
本文档是对构建带 CUDA 支持的 OpenCV 库,以便在 Tegra 环境中使用的基本指南。它涵盖了从源代码构建 3.1.0 版本库针对三种 (3) 不同类型平台的基本元素
本文档并非对构建 OpenCV 时所有可用选项的详尽指南。具体来说,它涵盖了用于构建各个平台时使用的基本选项,但未涵盖任何不需要(或保留其默认值)的选项。此外,此处未涵盖 CUDA 工具包的安装。
本文档重点关注构建 OpenCV 的 3.1.0 版本,但此处提供的指南也可能适用于从 git 存储库的主分支构建。对于 OpenCV 的 2.4.13 版本构建,某些 CMake 选项有所不同,这些差异在下方的 构建 OpenCV 2.4.X 部分中进行了汇总。
大多数配置命令均基于系统已安装 CUDA 8.0。在 Jetson TK1 的情况下,使用了较旧的 CUDA,因为该平台不支持 8.0。这些说明也可能适用于较旧版本的 CUDA,但只针对 8.0 进行了测试。
OpenCV 构建系统支持所有受支持平台的原生编译,以及对于 ARM 及其他平台的交叉编译。原生编译过程比较简单,而交叉编译通常更快。
目前,此文档仅关注原生编译。
获取 OpenCV 源代码的两种 (2) 方式
对于本指南,重点是使用 git 存储库。这是因为 OpenCV 的 3.1.0 版本在不应用 git 存储库中的一些小上游更改的情况下无法使用 CUDA 8.0 构建。
从 opencv
存储库开始
# Clone the opencv repository locally: $ git clone https://github.com/opencv/opencv.git
要构建 3.1.0 版本(而不是构建最新版本源代码),您必须签出一个基于 3.1.0
标记的分支
$ cd opencv $ git checkout -b v3.1.0 3.1.0
注意:此操作会在您克隆的存储库中创建一个新的本地分支。
有一些上游更改必须通过使用 git cherry-pick
命令应用。第一个是应用一个特别针对使用 CUDA 8.0 版本(不是 3.1.0 版本的一部分)的构建而进行的修复
# While still in the opencv directory: $ git cherry-pick 10896
您将看到此命令的以下输出
[v3.1.0 d6d69a7] GraphCut deprecated in CUDA 7.5 and removed in 8.0 Author: Vladislav Vinogradov <[email protected]> 1 file changed, 2 insertions(+), 1 deletion(-)
其次,对于一个在某些系统存在问题的 CMake 宏调用,有一个修复
$ git cherry pick cdb9c
您应该会看到类似以下内容的输出
[v3.1.0-28613 e5ac2e4] gpu samples: fix REMOVE_ITEM error Author: Alexander Alekhin <[email protected]> 1 file changed, 1 insertion(+), 1 deletion(-)
最后一步的上游修复处理的是与开发人员包(libopencv-dev
)捆绑在一起的 pkg-config
配置文件
$ git cherry-pick 24dbb
您应该会看到类似以下内容的输出
[v3.1.0 3a6d7ab] pkg-config: modules list contains only OpenCV modules (fixes #5852) Author: Alexander Alekhin <[email protected]> 1 file changed, 7 insertions(+), 4 deletions(-)
此时,opencv
存储库已准备好构建。
opencv_extra
存储库包含 OpenCV 库的额外数据,其中包括测试和演示使用的 data 文件。它必须单独克隆
# In the same base directory from which you cloned OpenCV: $ git clone https://github.com/opencv/opencv_extra.git
与 OpenCV 源相同,您必须使用以上方法将源 tree 设置为 3.1.0 版本。当从特定标记构建时,这两个存储库都必须签出到该标记。
$ cd opencv_extra $ git checkout -b v3.1.0 3.1.0
如果您不打算运行测试或安装测试数据(连同样本和示例程序),您可以选择不获取此存储库。如果在调用 CMake 时不引用此存储库,则不会使用此存储库。
注意:如果您打算运行测试,则某些测试会需要这些数据并且如果没有这些数据将失败。
要构建 OpenCV,您需要一个目录来创建配置并构建库。您还需要许多 OpenCV 所依赖的第三方库。
这些是在 Linux 上为 Tegra 构建 OpenCV 的基本要求
无论采用何种平台(DRIVE PX 2、台式机等),这些要求都相同。
在 Linux 系统上构建需要大量开发包
上述某些包存在 Ubuntu Linux 系统的 universe
软件包库中。如果你尚未启用该软件包库,则需要先执行以下操作,才可尝试安装上述所有软件包
$ sudo apt-add-repository universe $ sudo apt-get update
可以将以下命令粘贴到 shell 中,以安装所需软件包
$ sudo apt-get install \ libglew-dev \ libtiff5-dev \ zlib1g-dev \ libjpeg-dev \ libpng12-dev \ libjasper-dev \ libavcodec-dev \ libavformat-dev \ libavutil-dev \ libpostproc-dev \ libswscale-dev \ libeigen3-dev \ libtbb-dev \ libgtk2.0-dev \ pkg-config
(出于可读性目的,添加了换行符和延续字符。)
如果你希望构建 Python 绑定,则还需要 Python 2 和 Python 3(或两者之一)的相应软件包
以下命令将执行此操作
$ sudo apt-get install python-dev python-numpy python-py python-pytest # And, optionally: $ sudo apt-get install python3-dev python3-numpy python3-py python3-pytest
一旦所有所需软件包都安装好,即可配置构建。
使用 CMake 系统来配置构建的软件项目期望在源树外部执行实际的构建。要配置和构建 OpenCV,请在克隆 git 软件库的相同基本目录中创建一个名为“build”的目录
$ mkdir build $ cd build
现在,可以配置和构建 OpenCV。
针对不同平台提供的以下 CMake 配置选项主要是基于德州仪器所需的相应功能。它们基于用于构建 OpenCV 2.4.13 的原始配置选项。
OpenCV 构建是使用 CMake 进行配置的。如果在没有参数的情况下运行,就会检测到其需要了解的系统信息。但是,如果 CUDA 文件未位于标准位置,可能很难找到这些文件,并且还可能会尝试构建一些你可能不希望包含的其他选项,因此建议调用以下 CMake。
在以下分节列出的每个 cmake
命令中,出于可读性目的,添加了换行符和缩进。在基于 Linux 的平台的示例中也添加了延续字符,让你可以将示例直接复制并粘贴到 shell 中。如果手动输入这些命令,请将命令和选项都输入为一行。有关传递给 cmake
的参数的详细说明,请参阅“CMake 参数参考”部分。
对于基于 Linux 的平台,CMAKE_INSTALL_PREFIX
参数所示值为 /usr
。您可以根据系统的布局将其设置为任何您想要的值。
在以下的每个 cmake
调用中,最后一个参数 OPENCV_TEST_DATA_PATH
会告知构建系统在何处查找 opencv_extra
存储库提供的测试数据。当包含此参数时,make install
将连同库和示例代码一起安装此测试数据,而 make test
会自动为必须从中加载数据的测试提供此路径。如果您没有克隆 opencv_extra
存储库,请勿包含此参数。
受支持的平台:Drive PX 2
$ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_JAVA=OFF \ -DBUILD_opencv_python2=ON \ -DBUILD_opencv_python3=OFF \ -DENABLE_NEON=ON \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_TBB=ON \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \ -DCUDA_ARCH_BIN=6.2 \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_TESTS=OFF \ -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \ ../opencv
上述配置在构建过程中构建了 Python 2(但不是 Python 3)的 Python 绑定。如果您想要 Python 3 绑定(或不想要 Python 2 绑定),请根据需要更改 BUILD_opencv_python2
和/或 BUILD_opencv_python3
的值。要启用绑定,请将其值设为 ON
,要禁用它们,请将其设为 OFF
。
-DBUILD_opencv_python2=OFF
受支持的平台
对于 Jetson TK1 和 Jetson TX1 系统,配置略有不同。
$ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_CXX_FLAGS=-Wa,-mimplicit-it=thumb \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_JAVA=OFF \ -DBUILD_opencv_python2=ON \ -DBUILD_opencv_python3=OFF \ -DENABLE_NEON=ON \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_TBB=ON \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-6.5 \ -DCUDA_ARCH_BIN=3.2 \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_TESTS=OFF \ -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \ ../opencv
注意:这不是使用 CUDA 6.5,而是 8.0。
$ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_JAVA=OFF \ -DBUILD_opencv_python2=ON \ -DBUILD_opencv_python3=OFF \ -DENABLE_PRECOMPILED_HEADERS=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_TBB=ON \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \ -DCUDA_ARCH_BIN=5.3 \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_TESTS=OFF \ -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \ ../opencv
注意:此配置不设置 ENABLE_NEON
参数。
受支持的平台
下面提供给 cmake
的配置选项针对 Tegra 所需的功能。对于桌面系统,您可能希望调整一些选项以启用(或禁用)某些功能。下面启用的功能基于构建 OpenCV 2.4.13。
$ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_JAVA=OFF \ -DBUILD_opencv_python2=ON \ -DBUILD_opencv_python3=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_TBB=ON \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \ -DCUDA_ARCH_BIN='3.0 3.5 5.0 6.0 6.2' \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_TESTS=OFF \ -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \ ../opencv
此配置几乎与 V4L 和 L4T 的配置相同,但 CUDA_ARCH_BIN
参数指定了多个架构,以支持各种 GPU 板卡。对于桌面,您可以选择忽略此参数,而 CMake 会运行一个小型测试程序来探寻支持的架构。但是,所生成的库可能无法在具有不同显卡的 Ubuntu 系统上运行。
与之前的示例类似,上面给出的配置在构建过程中构建了 Python 2(但不是 Python 3)的 Python 绑定。
一旦 cmake
完成配置 OpenCV,便使用标准 make
实用工具进行构建。
调用 make
所需的唯一参数是 -j
参数,用于指定要使用的并行线程数。这根据系统、可用内存、其他正在运行的进程等因素而异。下表为该参数提供了建议值
平台 | 建议值 | 注释 |
---|---|---|
DRIVE PX 2 | 6 | |
Jetson TK1 | 3 | 如果构建因编译器相关错误而失败,请尝试使用更少的线程数。如果系统在最近的重启后已运行较长时间,也可考虑重新启动系统。 |
Jetson TX1 | 4 | |
Ubuntu Desktop | 7 | 实际值会因你拥有的核心数和物理内存量而变化。由于编译 CUDA 代码的资源要求,不建议超过 7。 |
基于所选值构建(假设你选择 6)
$ make -j6
默认情况下,CMake 会隐藏构建步骤的详细信息。如果你需要查看每个编译单元的更多详细信息,则可启用详细输出
$ make -j6 VERBOSE=1
完成构建后,你可以选择运行 OpenCV 提供的各种测试。如果你未克隆 opencv_extra
存储库并未在 cmake
调用中指定 testdata
路径,则不建议进行测试。
要运行 Linux 下的基本测试,请执行
$ make test
这会执行 ctest
以执行测试,如 OpenCV 存储库内的 CTest 语法中指定的那样。ctest
工具接受许多不同的参数(此处列出太多,请参阅 CTest 手册页以查看全部集合),如果你希望传递其中任何参数,可以通过在 make
命令行参数中指定它们,该参数称为 ARGS
$ make test ARGS="--verbose --parallel 3"
在此示例中,有两个 (2) 个参数传递给 ctest
:--verbose
和 --parallel 3
。第一个参数会使 ctest
的输出更详细,第二个参数会使 ctest
并行最多运行三个 (3) 个测试。与选择用于构建的线程数一样,任何测试选择都应基于可用处理器内核数、物理内存等做出。一些测试确实会尝试分配大量内存。
目前,OpenCV 测试套件中的并非所有测试都能通过。无论编译 CUDA 与否,都有失败的测试,并且有一些特定于 CUDA 的测试目前也无法通过。
注意:没有未包含 CUDA 就能通过但仅在包含 CUDA 时失败的测试。
由于失败测试的完整列表因平台而异,因此不适合在此列出。
安装 OpenCV 非常简单。对于基于 Linux 的平台,命令是
$ make install
根据所选安装位置,你可能需要 root 权限才能安装。
如果您希望构建自己的 OpenCV 2.4 版本,则只需进行一些调整。撰写本文时,2.4 分支上的最新版本为 2.4.13。这些说明适用于较新的 2.4 版本,但尚未对任何较早版本进行测试。
注意:OpenCV 2.4.X 源代码不包含上游至 OpenCV 3.X 版本的 Tegra 的额外模块和代码。本指南的这一部分仅适用于需要构建基本版 OpenCV 2.4 的情况。
首先,您必须选择正确的源分支或标签。如果您需要特定版本,如 2.4.13,那么您需要基于标签创建本地分支,如上面的 3.1.0 标签
# Within the opencv directory: $ git checkout -b v2.4.13 2.4.13 # Within the opencv_extra directory: $ git checkout -b v2.4.13 2.4.13
如果您仅需要 OpenCV 2.4 代码行的最新代码,那么存储库中已经有了一个 2.4
分支。您可以检出该分支,而无需检出特定标签
$ git checkout 2.4
构建 2.4.13 源代码时,无需使用构建 3.1.0 时所用的 git cherry-pick
命令。
如前所述,配置使用 CMake 进行。主要区别在于 OpenCV 2.4 仅为 Python 2 提供 Python 绑定,因此在 CMake 参数中并不区分 Python 2 和 Python 3。只有一个参数,即 BUILD_opencv_python
。另外,有一个与构建相关的参数用于控制 2.4 中不存在 3.1.0 中的特性。此参数为 BUILD_opencv_nonfree
。
配置仍在一个单独的目录中进行,该目录必须与 opencv
和 opencv_extra
目录同级。
适用于 DRIVE PX 2
$ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_JAVA=OFF \ -DBUILD_opencv_nonfree=OFF \ -DBUILD_opencv_python=ON \ -DENABLE_NEON=ON \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_TBB=ON \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \ -DCUDA_ARCH_BIN=6.2 \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_TESTS=ON \ -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \ ../opencv
适用于 Jetson TK1
$ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_JAVA=OFF \ -DBUILD_opencv_nonfree=OFF \ -DBUILD_opencv_python=ON \ -DENABLE_NEON=ON \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_TBB=ON \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-6.5 \ -DCUDA_ARCH_BIN=3.2 \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_TESTS=ON \ -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \ ../opencv
适用于 Jetson TX1
$ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_JAVA=OFF \ -DBUILD_opencv_nonfree=OFF \ -DBUILD_opencv_python=ON \ -DENABLE_PRECOMPILED_HEADERS=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_TBB=ON \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \ -DCUDA_ARCH_BIN=5.3 \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_TESTS=ON \ -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \ ../opencv
适用于 14.04 LTS 和 16.04 LTS
$ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_PNG=OFF \ -DBUILD_TIFF=OFF \ -DBUILD_TBB=OFF \ -DBUILD_JPEG=OFF \ -DBUILD_JASPER=OFF \ -DBUILD_ZLIB=OFF \ -DBUILD_EXAMPLES=ON \ -DBUILD_JAVA=OFF \ -DBUILD_opencv_nonfree=OFF \ -DBUILD_opencv_python=ON \ -DWITH_OPENCL=OFF \ -DWITH_OPENMP=OFF \ -DWITH_FFMPEG=ON \ -DWITH_GSTREAMER=OFF \ -DWITH_GSTREAMER_0_10=OFF \ -DWITH_CUDA=ON \ -DWITH_GTK=ON \ -DWITH_VTK=OFF \ -DWITH_TBB=ON \ -DWITH_1394=OFF \ -DWITH_OPENEXR=OFF \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \ -DCUDA_ARCH_BIN='3.0 3.5 5.0 6.0 6.2' \ -DCUDA_ARCH_PTX="" \ -DINSTALL_C_EXAMPLES=ON \ -DINSTALL_TESTS=ON \ -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \ ../opencv
配置完成后,构建、测试和安装的步骤与上文针对 3.1.0 源代码的步骤相同。
以下表格列出了所有在上述推荐调用中传递给 CMake 的参数。其中一些是 CMake 本身的参数,而大多数特定于 OpenCV。
参数 | 我们的默认值 | 用途 | 注释 |
---|---|---|---|
BUILD_EXAMPLES | ON | 控制是否构建 C/C++ 示例 | |
BUILD_JASPER | OFF | 控制是否从 3rdparty 目录中的源构建 Jasper 库 (libjasper ) | |
BUILD_JPEG | OFF | 同上,适用于 libjpeg | |
BUILD_PNG | OFF | 同上,适用于 libpng | |
BUILD_TBB | OFF | 如上,适用于tbb | |
BUILD_TIFF | OFF | 如上,适用于libtiff | |
BUILD_ZLIB | OFF | 如上,适用于zlib | |
BUILD_JAVA | OFF | 控制为 OpenCV 构建 Java 绑定 | 构建 Java 绑定需要针对静态链接构建 OpenCV 库 |
BUILD_opencv_nonfree | OFF | 控制构建非免费(非开源)元素 | 仅用于构建 2.4.X |
BUILD_opencv_python | ON | 控制在 OpenCV 2.4.X 中构建 Python 2 绑定 | 仅用于构建 2.4.X |
BUILD_opencv_python2 | ON | 控制在 OpenCV 3.1.0 中构建 Python 2 绑定 | 在 2.4.X 中未使用 |
BUILD_opencv_python3 | OFF | 控制在 OpenCV 3.1.0 中构建 Python 3 绑定 | 在 2.4.X 中未使用 |
CMAKE_BUILD_TYPE | Release | 选择构建类型(发布与开发) | 通常为Release 或Debug |
CMAKE_INSTALL_PREFIX | /usr | 设置库和头文件安装的根目录 | |
CUDA_ARCH_BIN | 不同 | 设置编译代码的 CUDA 架构 | 通常仅适用于带有已知特定卡的平台。如果你未传递此参数,OpenCV 中包含一个确定系统已安装卡架构的小程序。在此处,对于 Ubuntu 桌面版,该值为一个用于最大化卡支持的列表。 |
CUDA_ARCH_PTX | "" | 为指定的虚拟 PTX 架构构建 PTX 中间代码 | |
CUDA_TOOLKIT_ROOT_DIR | /usr/local/cuda-8.0 (适用于 Linux) | 指定 CUDA include 文件和库的位置 | |
ENABLE_NEON | ON | 启用对 ARM 芯片的 NEON SIMD 扩展的使用 | 仅适用于 ARM 平台上的构建 |
ENABLE_PRECOMPILED_HEADERS | OFF | 启用/禁用对预编译标题的支持 | 仅在部分 ARM 平台上指定 |
INSTALL_C_EXAMPLES | ON | 启用作为make install 一部分安装 C 示例文件 | |
INSTALL_TESTS | ON | 启用作为make install 一部分安装测试 | |
OPENCV_TEST_DATA_PATH | ../opencv_extra/testdata | opencv_extra 代码库中testdata 目录的路径 | |
WITH_1394 | OFF | 指定是否包含 IEEE-1394 支持 | |
WITH_CUDA | ON | 指定是否包含 CUDA 支持 | |
WITH_FFMPEG | ON | 指定是否包含 FFMPEG 支持 | |
WITH_GSTREAMER | OFF | 指定是否包含 GStreamer 1.0 支持 | |
WITH_GSTREAMER_0_10 | OFF | 指定是否包含 GStreamer 0.10 支持 | |
WITH_GTK | ON | 指定是否包含 GTK 2.0 支持 | 仅在 Linux 平台上提供,不适用于 Microsoft Windows |
WITH_OPENCL | OFF | 指定是否包含 OpenCL 运行时支持 | |
WITH_OPENEXR | OFF | 指定是否通过 OpenEXR 包含 ILM 支持 | |
WITH_OPENMP | OFF | 指定是否包含 OpenMP 运行时支持 | |
WITH_TBB | ON | 指定是否包含 Intel TBB 支持 | |
WITH_VTK | OFF | 指定是否包含 VTK 支持 |
版权 © 2016,NVIDIA CORPORATION。保留所有权利。