![]() |
OpenCV 4.12.0
開源計算機視覺
|
下一個教程: OpenCV 配置選項參考
在你的機器上安裝 OpenCV 有兩種方式:下載適用於你平臺的預構建版本或從原始碼編譯。
在很多情況下,你可以找到滿足你需求的 OpenCV 預構建版本。
針對 Android、iOS 和 Windows 的軟體包,使用預設引數和最新編譯器構建,並且會為每個版本釋出。它們不包含 opencv_contrib 模組。
其他組織和個人維護著他們自己的 OpenCV 二進位制發行版。例如:
現有二進位制包可能不適用於你的用例,那麼你需要自己構建 OpenCV 的自定義版本。本節提供了構建過程的高階概述,請檢視特定平臺的教程以獲取實際構建說明。
OpenCV 使用 CMake 構建管理系統進行配置和構建,所以本節主要描述使用 CMake 構建軟體的通用過程。
安裝 C++ 編譯器和構建工具。在 *NIX 平臺上,通常是 GCC/G++ 或 Clang 編譯器以及 Make 或 Ninja 構建工具。在 Windows 上,可以是 Visual Studio IDE 或 MinGW-w64 編譯器。Android 的原生工具鏈在 Android NDK 中提供。XCode IDE 用於為 OSX 和 iOS 平臺構建軟體。
從官方站點或其他來源安裝 CMake。
獲取其他第三方依賴項:具有額外功能的庫,例如解碼影片或顯示 GUI 元素;提供選定演算法最佳化實現的庫;用於文件生成的工具和其他額外功能。檢視 OpenCV 配置選項參考,瞭解可用選項和相應的依賴項。
典型的軟體專案由一個或多個程式碼倉庫組成。OpenCV 有兩個程式碼倉庫:opencv - 帶有穩定和積極支援的演算法的主倉庫;以及 opencv_contrib,其中包含實驗性和非免費(已獲得專利)的演算法;以及一個測試資料倉庫:opencv_extra。
你可以以歸檔檔案的形式下載倉庫的快照,或者克隆具有完整歷史記錄的倉庫。
要下載快照歸檔檔案:
要克隆倉庫,請在控制檯中執行以下命令(git 必須安裝)
在此步驟中,CMake 將驗證所有必要的工具和依賴項是否可用且與庫相容,並將為選定的構建系統生成中間檔案。它可以是 Makefiles、IDE 專案和解決方案等。通常,此步驟在新建立的構建目錄中執行。
cmake-gui 應用程式允許使用圖形使用者介面檢視和修改可用選項。有關詳細資訊,請參見 https://cmake.org/runningcmake/。在構建過程中,原始檔被編譯成目標檔案,這些目標檔案被連結在一起或以其他方式組合成庫和應用程式。可以使用通用命令執行此步驟
... 或者可以直接呼叫底層構建系統
在安裝過程中,構建結果和構建目錄中的其他檔案將被複制到安裝位置。預設安裝位置在 UNIX 上是 /usr/local,在 Windows 上是 C:/Program Files。可以透過設定 CMAKE_INSTALL_PREFIX 選項在配置步驟中更改此位置。要執行安裝,請執行以下命令
sudo cmake ...)。可以透過將部分程式碼提取到動態載入的外掛中,來解耦 OpenCV 的某些依賴項並使其成為可選的。這有助於生成自適應二進位制發行版,這些發行版可以在依賴項較少的系統上工作,並且只需安裝缺少的庫即可擴充套件功能。目前,模組 core、videoio 和 highgui 支援其某些依賴項的這種機制。在某些情況下,可以透過設定諸如 VIDEOIO_PLUGIN_LIST 或 HIGHGUI_PLUGIN_LIST 之類的選項來與 OpenCV 一起構建外掛,有關此方案的更多選項可以在 OpenCV 配置選項參考 中找到。在其他情況下,外掛應該在其自己的構建過程中單獨構建,本節描述了這種獨立的構建過程。
構建過程與 OpenCV 的主構建類似,但是你必須使用位於相應子目錄中的特殊 CMake 專案,這些資料夾還可以包含參考指令碼和 Docker 映象。重要的是為外掛使用 opencv_<module>_<backend> 名稱字首,以便載入器能夠找到它們。每個支援的字首只能用於載入一個庫,但是可以為單個字首探測多個候選者。例如,你可以擁有 libopencv_videoio_ffmpeg_3.so 和 libopencv_videoio_ffmpeg_4.so 外掛,並且可以成功載入的第一個外掛將佔據內部插槽並停止探測過程。下表介紹了可能的字首和專案位置
| module | backends | location |
|---|---|---|
| core | parallel_tbb, parallel_onetbb, parallel_openmp | opencv/modules/core/misc/plugins |
| highgui | gtk, gtk2, gtk3 | opencv/modules/highgui/misc/plugins |
| videoio | ffmpeg, gstreamer, intel_mfx, msmf | opencv/modules/videoio/misc |
示例
OpenCV_DIR 環境變數或 CMake 變數設定為包含 OpenCVConfig.cmake 檔案的目錄,它可以是 OpenCV 構建目錄或你在執行安裝的位置中的某個路徑。