手机静态网站开发制作,各大网站注册记录,浙江省建设业技术创新协会网站,专门做视频的网站返回#xff1a;OpenCV系列文章目录#xff08;持续更新中......#xff09;
上一篇#xff1a;MultiArch与Ubuntu/Debian 的交叉编译
下一篇#xff1a;在iOS中安装 警告#xff1a;
本教程可能包含过时的信息。
使用CUDA for Tegra 的OpenCV
本文档是构建支持 CUD…返回OpenCV系列文章目录持续更新中......
上一篇MultiArch与Ubuntu/Debian 的交叉编译
下一篇在iOS中安装 警告
本教程可能包含过时的信息。
使用CUDA for Tegra 的OpenCV
本文档是构建支持 CUDA 的 OpenCV 库以在 Tegra 环境中使用的基本指南。它涵盖了从三 3 种不同类型的平台的源代码构建版本 3.1.0 库的基本元素
NVIDIA DRIVE™ PX 2 V4LNVIDIA® Tegra® Linux 驱动程序包 L4T桌面 LinuxUbuntu 14.04 LTS 和 16.04 LTS
本文档并不是构建 OpenCV 时所有可用选项的详尽指南。具体来说它涵盖了构建每个平台时使用的基本选项但不包括任何不需要的选项或与默认值保持不变的选项。此外此处不介绍 CUDA 工具包的安装。
本文档重点介绍如何构建 OpenCV 的 3.1.0 版本但此处的指南也适用于从 git 存储库的 master 分支构建。OpenCV 2.4.13 版本构建的一些 CMake 选项存在差异下面构建 OpenCV 2.4.X 部分总结了这些选项。
大多数配置命令都基于安装了 CUDA 8.0 的系统。对于 Jetson TK1使用较旧的 CUDA因为该平台不支持 8.0。这些说明也适用于旧版本的 CUDA但仅在 8.0 中进行了测试。
关于原生编译与交叉编译的说明
OpenCV 构建系统支持所有受支持平台的原生编译以及 ARM 等平台的交叉编译。原生编译过程更简单而交叉编译通常更快。
目前本文档仅关注本机编译。
获取源代码
有两 2 种方法可以获取 OpenCV 源代码
直接从 OpenCV 下载页面下载克隆 GitHub 上托管的 git 存储库
在本指南中重点是使用 git 存储库。这是因为 OpenCV 的 3.1.0 版本如果不应用 git 存储库中的一些小的上游更改就无法使用 CUDA 8.0 构建。
OpenCV的
从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该命令应用一些上游更改。首先是应用一个修复程序专门使用不属于 3.1.0 版本的 CUDA 8.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.0Author: Vladislav Vinogradov vlad.vinogradovitseez.com1 file changed, 2 insertions(), 1 deletion(-)
其次有一个针对 CMake 宏调用的修复程序该调用在某些系统上存在问题
$ git cherry pick cdb9c
输出
[v3.1.0-28613 e5ac2e4] gpu samples: fix REMOVE_ITEM errorAuthor: Alexander Alekhin alexander.alekhinitseez.com1 file changed, 1 insertion(), 1 deletion(-)
需要的最后一个上游修复处理pkg-config与开发人员包捆绑在一起的配置文件 libopencv-dev
$ git cherry-pick 24dbb
您应看到类似于以下内容的输出
[v3.1.0 3a6d7ab] pkg-config: modules list contains only OpenCV modules (fixes #5852)Author: Alexander Alekhin alexander.alekhinitseez.com1 file changed, 7 insertions(), 4 deletions(-)
此时存储库opencv已准备好进行构建。
OpenCV依赖库
存储库opencv_extra包含 OpenCV 库的额外数据包括测试和演示使用的数据文件。它必须单独克隆
# In the same base directory from which you cloned OpenCV:
$ git clone https://github.com/opencv/opencv_extra.git
与 OpenCV 源代码一样您必须使用与上述相同的方法将源代码树设置为 3.1.0 版本。从特定标记构建时必须在该标记处签出两个存储库。
$ cd opencv_extra
$ git checkout -b v3.1.0 3.1.0
如果您不打算运行测试或安装测试数据以及示例和示例程序则可以选择不获取此存储库。如果在调用 CMake 时未引用它则不会使用它。
注意如果计划运行测试则某些测试需要数据存在如果没有数据数据将失败。
准备和前提
要构建 OpenCV您需要一个目录来创建配置和构建库。您还需要一些 OpenCV 所依赖的第三方库。
Ubuntu Linux 的先决条件
以下是在 Linux 上为 Tegra 构建 OpenCV 的基本要求
CMake 2.8.10 或更高版本CUDA 工具包 8.0也可以使用 7.0 或 7.5构建工具make、gcc、gPython 2.6 或更高版本
无论平台如何DRIVE PX 2、桌面等这些都是相同的。
在 Linux 上构建需要许多开发包
libglew-devlibtiff5-devzlib1g-devlibjpeg-devlibpng12-devlibjasper-devlibavcodec-devlibavformat-devlibavutil-devlibpostproc-devlibswscale-devlibeigen3-devlibtbb-devlibgtk2.0-devpkg-config
上面的一些软件包位于 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-dev / python3-devpython-numpy / python3-numpypython-py / python3-pypython-pytest / python3-pytest
将执行以下操作的命令
$ 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。
配置 OpenCV 以进行构建
下面针对不同平台给出的 CMake 配置选项针对的是 Tegra 所需的功能。它们基于用于构建 OpenCV 2.4.13 的原始配置选项。
OpenCV 的构建配置了 CMake。如果在不带参数的情况下运行它会检测需要了解的有关系统的信息。但是如果 CUDA 文件不在标准位置则可能很难找到它们并且它可能会尝试构建一些您可能不希望包含的选项因此建议对 CMake 进行以下调用。
在以下小节中列出的每个cmake命令中为了便于阅读添加了换行符和缩进。在基于 Linux 的平台的示例中还添加了延续字符允许您将示例直接复制并粘贴到 shell 中。手动输入这些命令时请以单行形式输入命令和选项。有关传递给cmake的参数的详细说明请参阅“CMake 参数参考”部分。
对于基于 Linux 的平台参数的显示值为 CMAKE_INSTALL_PREFIX/usr。您可以根据系统的布局将其设置为所需的任何内容。
在下面的每个调用cmake中最后一个参数OPENCV_TEST_DATA_PATH告诉构建系统在哪里可以找到存储库提供的测试数据。当包含此路径opencv_extramake时一个make install会将此测试数据与库和make test示例代码一起安装并自动为必须从中加载数据的测试提供此路径。如果未克隆opencv_extra存储库请不要包含此参数。
Vibrante V4L配置
支持的平台Drive PX 2
$ cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr \-DBUILD_PNGOFF \-DBUILD_TIFFOFF \-DBUILD_TBBOFF \-DBUILD_JPEGOFF \-DBUILD_JASPEROFF \-DBUILD_ZLIBOFF \-DBUILD_EXAMPLESON \-DBUILD_JAVAOFF \-DBUILD_opencv_python2ON \-DBUILD_opencv_python3OFF \-DENABLE_NEONON \-DWITH_OPENCLOFF \-DWITH_OPENMPOFF \-DWITH_FFMPEGON \-DWITH_GSTREAMEROFF \-DWITH_GSTREAMER_0_10OFF \-DWITH_CUDAON \-DWITH_GTKON \-DWITH_VTKOFF \-DWITH_TBBON \-DWITH_1394OFF \-DWITH_OPENEXROFF \-DCUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-8.0 \-DCUDA_ARCH_BIN6.2 \-DCUDA_ARCH_PTX \-DINSTALL_C_EXAMPLESON \-DINSTALL_TESTSOFF \-DOPENCV_TEST_DATA_PATH../opencv_extra/testdata \../opencv
上面提供的配置在构建过程中为 Python 2但不是 Python 3构建 Python 绑定。如果需要 Python 3 绑定BUILD_opencv_python2或BUILD_opencv_python3不需要 Python 2 绑定请根据需要更改 and/or 的值。若要启用绑定请将值设置为ON 若要禁用绑定请将其设置为OFF
-DBUILD_opencv_python2OFF
Jetson L4T 配置
支持的平台
杰特森 TK1杰特森TX1
Jetson TK1 和 Jetson TX1 系统的配置略有不同。
Jetson TK1
$ cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr \-DCMAKE_CXX_FLAGS-Wa,-mimplicit-itthumb \-DBUILD_PNGOFF \-DBUILD_TIFFOFF \-DBUILD_TBBOFF \-DBUILD_JPEGOFF \-DBUILD_JASPEROFF \-DBUILD_ZLIBOFF \-DBUILD_EXAMPLESON \-DBUILD_JAVAOFF \-DBUILD_opencv_python2ON \-DBUILD_opencv_python3OFF \-DENABLE_NEONON \-DWITH_OPENCLOFF \-DWITH_OPENMPOFF \-DWITH_FFMPEGON \-DWITH_GSTREAMEROFF \-DWITH_GSTREAMER_0_10OFF \-DWITH_CUDAON \-DWITH_GTKON \-DWITH_VTKOFF \-DWITH_TBBON \-DWITH_1394OFF \-DWITH_OPENEXROFF \-DCUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-6.5 \-DCUDA_ARCH_BIN3.2 \-DCUDA_ARCH_PTX \-DINSTALL_C_EXAMPLESON \-DINSTALL_TESTSOFF \-DOPENCV_TEST_DATA_PATH../opencv_extra/testdata \../opencv
注意这使用 CUDA 6.5而不是 8.0。
Jetson TX1
$ cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr \-DBUILD_PNGOFF \-DBUILD_TIFFOFF \-DBUILD_TBBOFF \-DBUILD_JPEGOFF \-DBUILD_JASPEROFF \-DBUILD_ZLIBOFF \-DBUILD_EXAMPLESON \-DBUILD_JAVAOFF \-DBUILD_opencv_python2ON \-DBUILD_opencv_python3OFF \-DENABLE_PRECOMPILED_HEADERSOFF \-DWITH_OPENCLOFF \-DWITH_OPENMPOFF \-DWITH_FFMPEGON \-DWITH_GSTREAMEROFF \-DWITH_GSTREAMER_0_10OFF \-DWITH_CUDAON \-DWITH_GTKON \-DWITH_VTKOFF \-DWITH_TBBON \-DWITH_1394OFF \-DWITH_OPENEXROFF \-DCUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-8.0 \-DCUDA_ARCH_BIN5.3 \-DCUDA_ARCH_PTX \-DINSTALL_C_EXAMPLESON \-DINSTALL_TESTSOFF \-DOPENCV_TEST_DATA_PATH../opencv_extra/testdata \../opencv
注意此配置不设置ENABLE_NEON参数。
Ubuntu 桌面 Linux 配置
支持的平台
Ubuntu 桌面 Linux 14.04 LTSUbuntu 桌面 Linux 16.04 LTS
下面给出的配置cmake选项针对 Tegra 所需的功能。对于桌面系统您可能希望调整某些选项以启用或禁用某些功能。下面启用的功能基于 OpenCV 2.4.13 的构建。
$ cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr \-DBUILD_PNGOFF \-DBUILD_TIFFOFF \-DBUILD_TBBOFF \-DBUILD_JPEGOFF \-DBUILD_JASPEROFF \-DBUILD_ZLIBOFF \-DBUILD_EXAMPLESON \-DBUILD_JAVAOFF \-DBUILD_opencv_python2ON \-DBUILD_opencv_python3OFF \-DWITH_OPENCLOFF \-DWITH_OPENMPOFF \-DWITH_FFMPEGON \-DWITH_GSTREAMEROFF \-DWITH_GSTREAMER_0_10OFF \-DWITH_CUDAON \-DWITH_GTKON \-DWITH_VTKOFF \-DWITH_TBBON \-DWITH_1394OFF \-DWITH_OPENEXROFF \-DCUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-8.0 \-DCUDA_ARCH_BIN3.0 3.5 5.0 6.0 6.2 \-DCUDA_ARCH_PTX \-DINSTALL_C_EXAMPLESON \-DINSTALL_TESTSOFF \-DOPENCV_TEST_DATA_PATH../opencv_extra/testdata \../opencv
此配置与 V4L 和 L4T 的配置几乎相同只是该CUDA_ARCH_BIN参数指定了多种架构以便支持各种 GPU 板。对于桌面您可以选择省略此参数CMake 将改为运行一个小型测试程序来探测支持的体系结构。但是生成的库可能无法在具有不同卡的 Ubuntu 系统上运行。CUDA_ARCH_BIN
与前面的示例一样上面给出的配置在构建过程中为 Python 2但不是 Python 3构建 Python 绑定。
构建 OpenCV
完成cmake OpenCV 配置后使用标准实用程序完成make构建。
make方式构建
调用make的唯一参数是用于指定要使用的并行线程数的参数-j。这取决于系统和可用内存量、其他正在运行的进程等。下表提供了此参数的建议值
平台建议值说明DRIVE PX 26Jetson TK13如果生成由于与编译器相关的错误而失败请使用较少数量的线程重试。如果系统自上次重新启动以来已经运行了很长时间也请考虑重新启动系统。Jetson TX14Ubuntu Desktop7实际值将因您拥有的内核数和物理内存量而异。由于编译 CUDA 代码的资源要求不建议超过 7。
根据您选择的值生成假设您选择了 6
$ make -j6
默认情况下CMake 隐藏生成步骤的详细信息。如果需要查看有关每个编译单元等的更多详细信息可以启用详细输出
$ make -j6 VERBOSE1
测试 OpenCV
构建成功完成后您可以选择运行 OpenCV 提供的大量测试。如果未克隆存储库并在调用中指定路径则不建议进行测试
在 Linux 下测试
要在 Linux 下运行基本测试请执行
$ make test
这将执行ctest测试如 OpenCV 存储库中的 CTest 语法中所指定的那样。该ctest工具采用许多不同的参数太多了无法在此处列出请参阅 CTest 的手册页以查看完整集如果您希望传递其中任何一个make您可以通过在命令行参数中指定它们来实现ARGS
$ make test ARGS--verbose --parallel 3
在此示例中有两 2 个参数传递给ctest --verbose 和--parallel 3。第一个参数ctes使输出更详细第二个参数ctes导致并行运行多达三 3 个测试。与选择用于构建的线程计数一样基于可用的处理器内核数、物理内存等进行测试的任何选择。某些测试确实会尝试分配大量内存。
测试的已知问题
目前并非所有 OpenCV 测试套件中的测试都通过。有些测试无论是否编译 CUDA 都会失败有些测试仅特定于 CUDA 的测试目前也没有通过。
注意没有 CUDA 就没有通过测试但只有在包含 CUDA 时才会失败。
由于未通过测试的完整列表因平台而异因此在此处列出它们是不切实际的。
安装 OpenCV
安装 OpenCV 非常简单。对于基于 Linux 的平台命令为
$ make install
根据所选的安装位置您可能需要 root 权限才能安装。 构建 OpenCV 2.4.X
如果您希望构建自己的 OpenCV 2.4 版本版本只需进行一些调整。在撰写本文时2.4 树上的最新版本是 2.4.13。这些说明可能适用于 2.4 的更高版本尽管它们尚未针对任何早期版本进行测试。
注意2.4.X OpenCV 源代码没有上游到 OpenCV 3.X 版本的 Tegra 的额外模块和代码。本指南的这一部分仅适用于您想要构建 OpenCV 2.4 的原版版本的情况。
选择 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目录的同级目录。
配置Vibrante V4L
Configuring Vibrante V4L
对于 DRIVE PX 2:
$ cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr \-DBUILD_PNGOFF \-DBUILD_TIFFOFF \-DBUILD_TBBOFF \-DBUILD_JPEGOFF \-DBUILD_JASPEROFF \-DBUILD_ZLIBOFF \-DBUILD_EXAMPLESON \-DBUILD_JAVAOFF \-DBUILD_opencv_nonfreeOFF \-DBUILD_opencv_pythonON \-DENABLE_NEONON \-DWITH_OPENCLOFF \-DWITH_OPENMPOFF \-DWITH_FFMPEGON \-DWITH_GSTREAMEROFF \-DWITH_GSTREAMER_0_10OFF \-DWITH_CUDAON \-DWITH_GTKON \-DWITH_VTKOFF \-DWITH_TBBON \-DWITH_1394OFF \-DWITH_OPENEXROFF \-DCUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-8.0 \-DCUDA_ARCH_BIN6.2 \-DCUDA_ARCH_PTX \-DINSTALL_C_EXAMPLESON \-DINSTALL_TESTSON \-DOPENCV_TEST_DATA_PATH../opencv_extra/testdata \../opencv
配置 Jetson L4T
对于 Jetson TK1:
$ cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr \-DBUILD_PNGOFF \-DBUILD_TIFFOFF \-DBUILD_TBBOFF \-DBUILD_JPEGOFF \-DBUILD_JASPEROFF \-DBUILD_ZLIBOFF \-DBUILD_EXAMPLESON \-DBUILD_JAVAOFF \-DBUILD_opencv_nonfreeOFF \-DBUILD_opencv_pythonON \-DENABLE_NEONON \-DWITH_OPENCLOFF \-DWITH_OPENMPOFF \-DWITH_FFMPEGON \-DWITH_GSTREAMEROFF \-DWITH_GSTREAMER_0_10OFF \-DWITH_CUDAON \-DWITH_GTKON \-DWITH_VTKOFF \-DWITH_TBBON \-DWITH_1394OFF \-DWITH_OPENEXROFF \-DCUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-6.5 \-DCUDA_ARCH_BIN3.2 \-DCUDA_ARCH_PTX \-DINSTALL_C_EXAMPLESON \-DINSTALL_TESTSON \-DOPENCV_TEST_DATA_PATH../opencv_extra/testdata \../opencv
对于 Jetson TX1
$ cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr \-DBUILD_PNGOFF \-DBUILD_TIFFOFF \-DBUILD_TBBOFF \-DBUILD_JPEGOFF \-DBUILD_JASPEROFF \-DBUILD_ZLIBOFF \-DBUILD_EXAMPLESON \-DBUILD_JAVAOFF \-DBUILD_opencv_nonfreeOFF \-DBUILD_opencv_pythonON \-DENABLE_PRECOMPILED_HEADERSOFF \-DWITH_OPENCLOFF \-DWITH_OPENMPOFF \-DWITH_FFMPEGON \-DWITH_GSTREAMEROFF \-DWITH_GSTREAMER_0_10OFF \-DWITH_CUDAON \-DWITH_GTKON \-DWITH_VTKOFF \-DWITH_TBBON \-DWITH_1394OFF \-DWITH_OPENEXROFF \-DCUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-8.0 \-DCUDA_ARCH_BIN5.3 \-DCUDA_ARCH_PTX \-DINSTALL_C_EXAMPLESON \-DINSTALL_TESTSON \-DOPENCV_TEST_DATA_PATH../opencv_extra/testdata \../opencv
配置桌面 Ubuntu Linux
对于 14.04 LTS 和 16.04 LTS
$ cmake \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/usr \-DBUILD_PNGOFF \-DBUILD_TIFFOFF \-DBUILD_TBBOFF \-DBUILD_JPEGOFF \-DBUILD_JASPEROFF \-DBUILD_ZLIBOFF \-DBUILD_EXAMPLESON \-DBUILD_JAVAOFF \-DBUILD_opencv_nonfreeOFF \-DBUILD_opencv_pythonON \-DWITH_OPENCLOFF \-DWITH_OPENMPOFF \-DWITH_FFMPEGON \-DWITH_GSTREAMEROFF \-DWITH_GSTREAMER_0_10OFF \-DWITH_CUDAON \-DWITH_GTKON \-DWITH_VTKOFF \-DWITH_TBBON \-DWITH_1394OFF \-DWITH_OPENEXROFF \-DCUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-8.0 \-DCUDA_ARCH_BIN3.0 3.5 5.0 6.0 6.2 \-DCUDA_ARCH_PTX \-DINSTALL_C_EXAMPLESON \-DINSTALL_TESTSON \-DOPENCV_TEST_DATA_PATH../opencv_extra/testdata \../opencv
构建、测试和安装
配置后构建、测试和安装步骤与上述 3.1.0 源相同。
CMake 参数参考
下表列出了在上面推荐的调用中传递给 CMake 的所有参数。其中一些是 CMake 本身的参数而大多数是特定于 OpenCV 的。
参数默认值功能注意BUILD_EXAMPLESON控制是否生成 C/C 示例BUILD_JASPEROFF控制 Jasper 库 (libjasper)是否从3rdparty目录中的源代码构建BUILD_JPEGOFF如上所述对于libjpegBUILD_PNGOFF如上所述对于libpngBUILD_TBBOFF如上所述对于tbbBUILD_TIFFOFF如上所述对于libtiffBUILD_ZLIBOFF如上所述对于zlibBUILD_JAVAOFF控制 OpenCV 的 Java 绑定的构建构建 Java 绑定需要仅为静态链接构建 OpenCV 库BUILD_opencv_nonfreeOFF控制非自由非开源元素的构建仅用于构建 2.4.XBUILD_opencv_pythonON控制 OpenCV 3.1.0 中 Python 2 绑定的构建仅用于构建 2.4.XBUILD_opencv_python2ON控制 OpenCV 3.1.0 中 Python 3 绑定的构建在 2.4.X 中未使用BUILD_opencv_python3OFF控制 OpenCV 3.1.0 中 Python 3 绑定的构建在 2.4.X 中未使用CMAKE_BUILD_TYPERelease选择生成类型发布与开发通常是 either 或ReleaseDebugCMAKE_INSTALL_PREFIX/usr 设置库和头文件安装的根目录CUDA_ARCH_BINvaries设置为其编译代码的 CUDA 体系结构通常只针对具有已知特定卡的平台通过。OpenCV 包含一个小程序如果您不传递此参数则该程序可以确定系统安装卡的架构。在这里对于 Ubuntu 桌面该值是一个列表以最大化卡支持。CUDA_ARCH_PTX为指定的虚拟 PTX 体系结构生成 PTX 中间代码CUDA_TOOLKIT_ROOT_DIR/usr/local/cuda-8.0 (for Linux)指定 CUDA 包含文件和库的位置ENABLE_NEONON支持将 NEON SIMD 扩展用于 ARM 芯片Only passed for builds on ARM platformsENABLE_PRECOMPILED_HEADERSOFF启用/禁用对预编译标头的支持仅在某些 ARM 平台上指定INSTALL_C_EXAMPLESON允许将 C 示例文件作为make installINSTALL_TESTSON允许将测试作为make installOPENCV_TEST_DATA_PATH../opencv_extra/testdata存储库中目录的路径testdataopencv_extraWITH_1394OFF指定是否包括 IEEE-1394 支持WITH_CUDAON指定是否包括 CUDA 支持WITH_FFMPEGON指定是否包括 FFMPEG 支持WITH_GSTREAMEROFF指定是否包括 GStreamer 1.0 支持WITH_GSTREAMER_0_10OFF指定是否包括 GStreamer 0.10 支持WITH_GTKON 指定是否包括 GTK 2.0 支持 仅在 Linux 平台上提供而不是 Microsoft WindowsWITH_OPENCLOFF指定是否包括 OpenCL 运行时支持WITH_OPENEXROFF指定是否通过 OpenEXR 包括 ILM 支持WITH_OPENMPOFF指定是否包括 OpenMP 运行时支持WITH_TBBON指定是否包括英特尔 TBB 支持WITH_VTKOFF指定是否包括 VTK 支持
版权所有 © 2016NVIDIA CORPORATION。保留所有权利。
参考文献
1、《Building OpenCV for Tegra with CUDA》--Randy J. Ray