![]() |
OpenCV 4.12.0
開源計算機視覺
|
上一教程: 基於 ARM 的 Linux 系統的交叉編譯
下一教程: 影像入門
| 原始作者 | Randy J. Ray |
| 相容性 | OpenCV >= 3.1.0 |
本文件是關於為 Tegra 環境構建支援 CUDA 的 OpenCV 庫的基本指南。它涵蓋了從原始碼為三種 (3) 不同型別的平臺構建 3.1.0 版本庫的基本要素:
本文件並非構建 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 原始碼:
本指南重點介紹使用 Git 倉庫。這是因為 3.1.0 版本的 OpenCV 不應用 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 庫的額外資料,包括測試和演示使用的檔案。它必須單獨克隆:
# 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 依賴的一些第三方庫。
這些是在 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 配置選項旨在滿足 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_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 繫結(但不是 Python 3 的)作為構建過程的一部分。如果您想要 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 繫結(但不是 Python 3 的)作為構建過程的一部分。
一旦 cmake 完成 OpenCV 的配置,就可以使用標準的 make 工具進行構建。
make 構建呼叫 make 唯一需要的引數是 -j 引數,用於指定要使用的並行執行緒數。這取決於系統、可用記憶體量、其他執行程序等。下表提供了此引數的建議值:
| Platform | 建議值 | 注意事項 |
|---|---|---|
| DRIVE PX 2 | 6 | |
| Jetson TK1 | 3 | 如果構建因編譯器相關錯誤而失敗,請嘗試使用較少的執行緒數。如果系統自上次重啟以來已執行很長時間,也請考慮重啟系統。 |
| Jetson TX1 | 4 | |
| Ubuntu 桌面版 | 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"
在此示例中,向 ctest 傳遞了兩個 (2) 引數:--verbose 和 --parallel 3。第一個引數使 ctest 的輸出更詳細,第二個引數使 ctest 最多並行執行三個 (3) 測試。與選擇構建的執行緒數一樣,根據可用的處理器核心數、物理記憶體等選擇測試。某些測試確實嘗試分配大量記憶體。
目前,OpenCV 測試套件中的所有測試並非都透過。無論是否編譯 CUDA,都有測試失敗,並且有些僅特定於 CUDA 的測試目前也未透過。
注意: 沒有在沒有 CUDA 的情況下透過但在包含 CUDA 時才失敗的測試。
由於失敗測試的完整列表因平臺而異,因此在此處列出並不實用。
安裝 OpenCV 非常簡單。對於基於 Linux 的平臺,命令是:
$ make install
根據選擇的安裝位置,您可能需要 root 許可權才能安裝。
如果您希望構建自己的 2.4 版本 OpenCV,只需進行少量調整。在撰寫本文時,2.4 樹上的最新版本是 2.4.13。這些說明可能適用於 2.4 的更高版本,但尚未對任何更早的版本進行測試。
注意: 2.4.X OpenCV 原始碼不包含已合併到 3.X 版本 OpenCV 中的 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 | 選擇構建型別(釋出版 vs. 開發版) | 通常為 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 包含檔案和庫的位置 | |
| ENABLE_NEON | ON | 啟用 ARM 晶片的 NEON SIMD 擴充套件使用 | 僅用於 ARM 平臺上的構建 |
| ENABLE_PRECOMPILED_HEADERS | OFF | 啟用/停用預編譯標頭檔案支援 | 僅在某些 ARM 平臺上指定 |
| INSTALL_C_EXAMPLES | ON | 啟用將 C 示例檔案作為 make install 的一部分進行安裝 | |
| 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。保留所有權利。