OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
OpenCV 安裝概述

下一個教程: OpenCV 配置選項參考

在你的機器上安裝 OpenCV 有兩種方式:下載適用於你平臺的預構建版本或從原始碼編譯。

預構建版本

在很多情況下,你可以找到滿足你需求的 OpenCV 預構建版本。

OpenCV 核心團隊提供的軟體包

針對 Android、iOS 和 Windows 的軟體包,使用預設引數和最新編譯器構建,並且會為每個版本釋出。它們不包含 opencv_contrib 模組。

第三方軟體包

其他組織和個人維護著他們自己的 OpenCV 二進位制發行版。例如:

從原始碼構建

現有二進位制包可能不適用於你的用例,那麼你需要自己構建 OpenCV 的自定義版本。本節提供了構建過程的高階概述,請檢視特定平臺的教程以獲取實際構建說明。

OpenCV 使用 CMake 構建管理系統進行配置和構建,所以本節主要描述使用 CMake 構建軟體的通用過程。

步驟 0:先決條件

安裝 C++ 編譯器和構建工具。在 *NIX 平臺上,通常是 GCC/G++ 或 Clang 編譯器以及 Make 或 Ninja 構建工具。在 Windows 上,可以是 Visual Studio IDE 或 MinGW-w64 編譯器。Android 的原生工具鏈在 Android NDK 中提供。XCode IDE 用於為 OSX 和 iOS 平臺構建軟體。

從官方站點或其他來源安裝 CMake。

獲取其他第三方依賴項:具有額外功能的庫,例如解碼影片或顯示 GUI 元素;提供選定演算法最佳化實現的庫;用於文件生成的工具和其他額外功能。檢視 OpenCV 配置選項參考,瞭解可用選項和相應的依賴項。

步驟 1:獲取軟體原始碼

典型的軟體專案由一個或多個程式碼倉庫組成。OpenCV 有兩個程式碼倉庫:opencv - 帶有穩定和積極支援的演算法的主倉庫;以及 opencv_contrib,其中包含實驗性和非免費(已獲得專利)的演算法;以及一個測試資料倉庫:opencv_extra

你可以以歸檔檔案的形式下載倉庫的快照,或者克隆具有完整歷史記錄的倉庫。

要下載快照歸檔檔案:

要克隆倉庫,請在控制檯中執行以下命令(git 必須安裝

git clone https://github.com/opencv/opencv
git -C opencv checkout <some-tag>
# 可選
git clone https://github.com/opencv/opencv_contrib
git -C opencv_contrib checkout <same-tag-as-opencv>
# 可選
git clone https://github.com/opencv/opencv_extra
git -C opencv_extra checkout <same-tag-as-opencv>
注意
如果要使用多個倉庫構建軟體,請確保所有元件彼此相容。對於 OpenCV,這意味著 opencvopencv_contrib 倉庫必須在相同的標籤處檢出,或者所有快照歸檔檔案都從相同的版本下載。
選擇要下載的版本時,請考慮你的目標平臺和開發工具版本。最新版本的 OpenCV 在使用非常舊的編譯器時可能會出現構建問題,反之亦然。我們建議使用最新版本和最新的作業系統/編譯器組合。

步驟 2:配置

在此步驟中,CMake 將驗證所有必要的工具和依賴項是否可用且與庫相容,並將為選定的構建系統生成中間檔案。它可以是 Makefiles、IDE 專案和解決方案等。通常,此步驟在新建立的構建目錄中執行。

cmake -G<generator> <configuration-options> <source-directory>
注意
cmake-gui 應用程式允許使用圖形使用者介面檢視和修改可用選項。有關詳細資訊,請參見 https://cmake.org/runningcmake/

步驟 3:構建

在構建過程中,原始檔被編譯成目標檔案,這些目標檔案被連結在一起或以其他方式組合成庫和應用程式。可以使用通用命令執行此步驟

cmake --build <build-directory> <build-options>

... 或者可以直接呼叫底層構建系統

make

(可選)步驟 3:安裝

在安裝過程中,構建結果和構建目錄中的其他檔案將被複制到安裝位置。預設安裝位置在 UNIX 上是 /usr/local,在 Windows 上是 C:/Program Files。可以透過設定 CMAKE_INSTALL_PREFIX 選項在配置步驟中更改此位置。要執行安裝,請執行以下命令

cmake --build <build-directory> --target install <other-options>
注意
此步驟是可選的,可以直接從構建目錄中使用 OpenCV。
如果安裝根位置是受保護的系統目錄,則必須以超級使用者或管理員許可權執行安裝過程(例如,sudo cmake ...)。

(可選)步驟 4:構建外掛

可以透過將部分程式碼提取到動態載入的外掛中,來解耦 OpenCV 的某些依賴項並使其成為可選的。這有助於生成自適應二進位制發行版,這些發行版可以在依賴項較少的系統上工作,並且只需安裝缺少的庫即可擴充套件功能。目前,模組 corevideoiohighgui 支援其某些依賴項的這種機制。在某些情況下,可以透過設定諸如 VIDEOIO_PLUGIN_LISTHIGHGUI_PLUGIN_LIST 之類的選項來與 OpenCV 一起構建外掛,有關此方案的更多選項可以在 OpenCV 配置選項參考 中找到。在其他情況下,外掛應該在其自己的構建過程中單獨構建,本節描述了這種獨立的構建過程。

注意
建議使用與用於 OpenCV 構建的編譯器、配置和構建選項相容的編譯器、配置和構建選項,否則生成的庫可能會拒絕載入或導致其他執行時問題。請注意,當後端由於 OpenCV 和相應的第三方庫之間的額外屏障而動態載入時,某些功能可能會受到限制或工作速度較慢。

構建過程與 OpenCV 的主構建類似,但是你必須使用位於相應子目錄中的特殊 CMake 專案,這些資料夾還可以包含參考指令碼和 Docker 映象。重要的是為外掛使用 opencv_<module>_<backend> 名稱字首,以便載入器能夠找到它們。每個支援的字首只能用於載入一個庫,但是可以為單個字首探測多個候選者。例如,你可以擁有 libopencv_videoio_ffmpeg_3.solibopencv_videoio_ffmpeg_4.so 外掛,並且可以成功載入的第一個外掛將佔據內部插槽並停止探測過程。下表介紹了可能的字首和專案位置

modulebackendslocation
coreparallel_tbb, parallel_onetbb, parallel_openmpopencv/modules/core/misc/plugins
highguigtk, gtk2, gtk3opencv/modules/highgui/misc/plugins
videoioffmpeg, gstreamer, intel_mfx, msmfopencv/modules/videoio/misc

示例

# 設定 TBB 檢測的環境,例如
# export TBB_DIR=<dir-with-tbb-cmake-config>
cmake -G<generator> \
-DOPENCV_PLUGIN_NAME=opencv_core_tbb_<suffix> \
-DOPENCV_PLUGIN_DESTINATION=<dest-folder> \
-DCMAKE_BUILD_TYPE=<config> \
<opencv>/modules/core/misc/plugins/parallel_tbb
cmake --build . --config <config>
注意
在 Windows 上,外掛必須與現有的 OpenCV 構建連結。將 OpenCV_DIR 環境變數或 CMake 變數設定為包含 OpenCVConfig.cmake 檔案的目錄,它可以是 OpenCV 構建目錄或你在執行安裝的位置中的某個路徑。