一、OpenCV with CUDA for Tegra
1、本文档是构建OpenCV库的基本指南,CUDA支持在Tegra环境中使用。它涵盖了从源代码中构建版本3.1.0库的基本元素,包括三种不同类型的平台:
(1)NVIDIA DRIVE™ PX 2 (V4L)
(2)NVIDIA® Tegra® Linux Driver Package (L4T)
(3)Desktop Linux (Ubuntu 14.04 LTS and 16.04 LTS)
2、本文档并不是对构建OpenCV时可用的所有选项的详尽指南。具体来说,它涵盖了构建每个平台时所使用的基本选项,但不包括任何不需要的选项(或与它们的默认值保持不变)。另外,CUDA工具包的安装也不在这里。
3、本文档的重点是构建OpenCV的3.1.0版本,但是这里的指导原则也可以从git存储库的主分支中构建。关于OpenCV 2.4.13版本的构建,有些CMake选项存在差异,这在OpenCV 2.4的构建中总结如下Building OpenCV 2.4.X部分。
4、大多数配置命令都基于安装了CUDA 8.0的系统。在Jetson TK1的例子中,使用了一个较旧的CUDA,因为该平台不支持8.0。这些指令可能也适用于旧版本的CUDA,但只测试了8.0。
5、本地编译与交叉编译的说明。OpenCV构建系统支持所有支持的平台的本地编译,以及诸如ARM等平台的交叉编译。本地编译过程更简单,而交叉编译通常更快。目前,本文档只关注本地编译。
二、Getting the Source Code
1、有两种方法可以获得OpenCV源代码,对于本指南,重点是使用git存储库。这是因为OpenCV的3.1.0版本不会使用CUDA 8.0构建,而不需要从git存储库中应用少量的上游更改。
(1)直接从OpenCV下载页面下载。
(2)克隆托管在GitHub上的git存储库。
2、OpenCV
(1)从opencv存储库开始:
//
# Clone the opencv repository locally:
$ git clone https://github.com/opencv/opencv.git
//
(2)要构建3.1.0版本(而不是构建最新的源代码),您必须基于3.1.0标记检查一个分支:
//
$ cd opencv
$ git checkout -b v3.1.0 3.1.0
//
注:该操作在您的克隆存储库中创建一个新的本地分支。
(3)有一些上游更改必须通过git cherry-pick命令进行应用。第一种方法是应用修复程序,具体地使用8.0版本的CUDA,而不是3.1.0版本的一部分:
//
# While still in the opencv directory:
$ git cherry-pick 10896
//
(4)您将看到以下命令的输出:
//
[v3.1.0 d6d69a7] GraphCut deprecated in CUDA 7.5 and removed in 8.0
Author: Vladislav Vinogradov
1 file changed, 2 insertions(+), 1 deletion(-)
//
(5)其次,在某些系统上,CMake宏调用存在问题:
//
$ git cherry pick cdb9c
//
(6)您应该会看到类似的输出:
//
[v3.1.0-28613 e5ac2e4] gpu samples: fix REMOVE_ITEM error
Author: Alexander Alekhin
1 file changed, 1 insertion(+), 1 deletion(-)
//
(7)需要处理的最后一个上游补丁是与开发包绑定的pkg配置文件(libopencv-dev):
//
$ git cherry-pick 24dbb
//
(8)您应该会看到类似的输出:
//
[v3.1.0 3a6d7ab] pkg-config: modules list contains only OpenCV modules (fixes #5852)
Author: Alexander Alekhin
1 file changed, 7 insertions(+), 4 deletions(-)
//
(9)此时,opencv存储库就可以构建了。
3、OpenCV Extra
(1)opencv_extra存储库包含OpenCV库的额外数据,包括测试和演示使用的数据文件。它必须分别克隆:
//
# In the same base directory from which you cloned OpenCV:
$ git clone https://github.com/opencv/opencv_extra.git
//
(2)与OpenCV源代码一样,您必须使用上面的相同方法将源树设置为3.1.0版本。当您从一个特定的标记构建时,两个存储库都必须在该标记处签出。
//
$ cd opencv_extra
$ git checkout -b v3.1.0 3.1.0
//
(3)如果您不打算运行测试或安装测试数据以及示例程序,那么您可能会选择不去获取这个存储库。如果在CMake的调用中没有引用它,就不会使用它。
注:如果您计划运行测试,一些测试期望数据会出现,并且没有它会失败。
三、Preparation and Prerequisites
1、要构建OpenCV,需要一个目录来创建配置和构建库。您还需要一些第三方库,OpenCV依赖这些库。
2、Ubuntu Linux环境下预先准备
(1)这些是在Linux上为Tegra构建OpenCV的基本要求:
a、CMake 2.8.10 or newer
b、CUDA toolkit 8.0 (7.0 or 7.5 may also be used)
c、Build tools (make, gcc, g++)
d、Python 2.6 or greater
(2)无论什么平台(DRIVE PX 2, Desktop, etc.),这些都是相同的。在Linux上构建一些开发包是必需的:
//
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
//
(3)上面的一些软件包是Ubuntu Linux系统的“universe 存储库”。如果您还没有启用该存储库,那么在尝试安装上面列出的所有软件包之前,您需要执行以下操作:
//
$ sudo apt-add-repository universe
$ sudo apt-get update
//
(4)可以将以下命令粘贴到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
//为可读性添加了行中断和延续字符。
(5)如果您想要构建Python绑定,那么您还需要使用Python 2和Python 3中的任何一个或两个适当的包:
a、python-dev / python3-dev
b、python-numpy / python3-numpy
c、python-py / python3-py
d、python-pytest / python3-pytest
(6)要做的命令如下:
//
$ 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
//
(7)一旦安装了所有必要的包,您就可以配置构建了。
3、准备构建区域
(1)使用CMake系统来配置其构建的软件项目期望在源树本身之外完成实际的构建。为了配置和构建OpenCV,在同一个基目录中创建一个名为“build”的目录,并在其中克隆git存储库:
//
$ mkdir build
$ cd build
//
(2)现在可以配置和构建OpenCV了。
四、为构建配置OpenCV
1、为不同平台提供的CMake配置选项针对的是Tegra所需的功能。它们基于用于构建OpenCV 2.4.13的原始配置选项。OpenCV的构建配置为CMake。如果没有参数运行,它将检测它需要知道的关于您的系统的信息。然而,如果CUDA文件不在标准位置,那么它可能很难找到CUDA文件,并且可能尝试构建一些您可能不希望包含的选项,因此建议使用CMake的以下调用。在每个cmake命令中,都添加了行中断和缩进,以增加可读性。在基于linux的平台的示例中还添加了延续字符,允许您将示例直接复制和粘贴到shell中。当手动输入这些命令时,将命令和选项输入为一行。对于传递给cmake的参数的详细解释,请参阅“cmake参数参考”部分。对于基于linux的平台,CMAKE_INSTALL_PREFIX参数的显示值为/usr。您可以根据系统的布局将其设置为您想要的任何东西。在下面的每个cmake调用中,最后一个参数OPENCV_TEST_DATA_PATH告诉构建系统,在哪里可以找到opencv_extra存储库提供的测试数据。当包含这一点时,make安装会在库和示例代码旁边安装这些测试数据,并且make测试会自动为需要加载数据的测试提供这条路径。如果您没有克隆opencv_extra存储库,则不要包含此参数。
2、Vibrante V4L Configuration
(1)Vibrante is the name of a Linux distribution created by NVIDIA and used for at least their Drive PX 2 platform series.
(2)Vibrante V4L Configuration Supported platform: Drive PX 2
(3)具体配置如下
//
$ 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_opencv_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
//
(4)上面提供的配置构建了Python 2(但不是Python 3)的Python绑定,作为构建过程的一部分。如果您想要Python 3绑定(或者不需要Python 2绑定),那么可以根据需要更改BUILD_opencv_python2和/或BUILD_opencv_python3的值。要启用绑定,请将值设置为ON,禁用它们将其设置为OFF:
//
-DBUILD_opencv_python2=OFF
//
3、Jetson L4T Configuration
(1)Supported platforms:Jetson TK1 & Jetson TX1
(2)对于Jetson TK1和Jetson TX1系统,配置略有不同。
(3)Jetson TK1
//
$ 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_opencv_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。
(4)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_opencv_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 参数。
4、Ubuntu Desktop Linux Configuration
(1)Supported platforms:Ubuntu Desktop Linux 14.04 LTS & Ubuntu Desktop Linux 16.04 LTS
(2)下面的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_opencv_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
//
(3)这个配置与V4L和L4T几乎相同,除了CUDA_ARCH_BIN参数指定多个架构,以支持各种GPU板。对于桌面,您可以选择省略此参数,而CMake将运行一个小型的测试程序来探测受支持的架构。然而,所产生的库可能并不适用于使用不同卡片的Ubuntu系统。与前面的例子一样,上面给出的配置构建了Python 2的Python绑定(但不是Python 3)作为构建过程的一部分。
五、Building OpenCV
一旦cmake完成配置OpenCV,就会使用标准make工具进行构建。
1、用 make 构建
(1)调用make所需的惟一参数是 -j 参数,用于指定要使用多少并行线程。这取决于系统和可用的内存大小、其他运行过程等。
(2)基于您选择的值,构建(假设您选择了6):
//
$ make -j6
//
(3)默认情况下,CMake隐藏了构建步骤的细节。如果您需要查看每个编译单元的更多细节,等等,您可以启用详细输出:
//
$ make -j6 VERBOSE=1
//
六、Testing OpenCV
1、一旦构建成功完成,您就可以选择运行OpenCV提供的大量测试集。如果您没有克隆opencv_extra存储库并在cmake调用中指定测试数据的路径,那么不建议进行测试。
2、Linux 下测试
(1)要运行Linux下的基本测试,执行:
//
$ make test
//
(2)这将执行ctest来执行测试,就像在OpenCV存储库中指定的ctest语法中指定的那样。ctest工具包含了许多不同的参数(这里列出了太多的参数,请参阅ctest的手册页来查看完整的集合),如果您希望传递其中任何一个参数,您可以通过在一个名为ARGS的make命令行参数中指定它们来实现这一点:
//
$ make test ARGS="--verbose --parallel 3"
//
(3)在本例中,有两参数传递给ctest:--verbose和--parallel 3。第一个参数导致ctest的输出更加详细,而第二个参数导致ctest并行运行多达3个测试。与选择构建线程数一样,在可用的处理器核数、物理内存等方面,可以选择用于测试的任何选择。一些测试确实尝试分配大量内存。
3、测试所知问题
(1)目前,并不是OpenCV测试套件中所有的测试都通过。有一些测试会失败,不管CUDA是否编译,还有一些测试只针对CUDA,而且目前还没有通过。
注:没有CUDA的测试可以通过,但是只有CUDA包含时才会失败。由于失败测试的完整列表根据平台的不同而不同,在这里列出它们是不现实的。
七、Installing OpenCV
1、安装OpenCV非常简单,对于基于linux的平台,该命令是:
//
$ make install
//
2、根据所选的安装位置,您可能需要root权限才能安装。
八、Building OpenCV 2.4.X
1、如果您希望构建自己的2.4版本的OpenCV,那么只需做一些调整。在写此本文时,2.4树的最新版本是2.4.13。这些说明可能适用于2.4版本的后续版本,尽管它们还没有经过任何早期版本的测试。
注:2.4.X OpenCV源没有为Tegra提供额外的模块和代码。X版本的OpenCV。这部分指南仅适用于您希望构建OpenCV 2.4的vanilla版本的情况。
2、Selecting the 2.4 Source
(1)首先,您必须选择正确的源分支或标记。如果您想要一个特定的版本,比如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
//
(2)如果您只是想从2.4的OpenCV中获得最新的代码,那么在存储库中已经有一个2.4分支。你可以查看一下,而不是一个特定的标签:
//
$ git checkout 2.4
//
(3)在构建2.4.13源代码时,不需要使用3.1.0的git cherry-pick命令。
3、配置
(1)与之前一样配置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目录的sibling。
(2)Configuring Vibrante V4L
a、For 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_opencv_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
//
(3)Configuring Jetson L4T
a、For 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_opencv_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
//
b、For 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_opencv_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
//
(4)Configuring Desktop Ubuntu Linux
a、For both 14.04 LTS and 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_opencv_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
//
4、Building, Testing and Installing
(1)一旦配置好,构建、测试和安装的步骤与上面的3.1.0源代码相同。
九、CMake参数引用
1、下面是在上述推荐调用中传递给CMake的所有参数的表。其中一些是来自CMake本身的参数,而大多数是OpenCV的参数。
致谢
1、Building OpenCV for Tegra with CUDA