b站是什么平臺網(wǎng)站優(yōu)化北京seo
【opencv】windows10下opencv4.8.0-cuda版本源碼編譯教程
提示:博主取舍了很多大佬的博文并親測有效,分享筆記邀大家共同學習討論
文章目錄
- 【opencv】windows10下opencv4.8.0-cuda版本源碼編譯教程
- 前言
- 準備工具
- cuda/cudnn
- cmake
- opencv4.5.0
- opencv_contrib
- CMake編譯
- VS2019編譯
- 可能出現(xiàn)的問題
- cmake編譯過程中可能出現(xiàn)的問題
- VS2019編譯過程中可能出現(xiàn)的問題
- 通常是對于部分資源,vs2019沒有管理員操作權限,因此只需要用管理員身份重新打開進行操作即可。 
- 測試使用GPU
- 總結
前言
OpenCV是一個開源的計算機視覺庫,包含了核心模塊和擴展模塊,提供了基礎的圖像處理和計算機視覺算法,以及一些機器學習工具。而OpenCV Contrib是OpenCV社區(qū)貢獻的一組擴展模塊之一,包含了一些較為新穎和實用的算法和工具函數(shù),提供了一些高級的圖像處理和計算機視覺算法。這些功能和算法可能不適合所有用戶或者還處于實驗性階段。OpenCV Contrib模塊中的代碼由社區(qū)貢獻者開發(fā)和維護,它們提供了一些在OpenCV核心庫中尚未包含的新特性和實驗性功能。
準備工具
cmake、vs2019、opencv4.8.0、opencv_contrib-4.8.0、cuda、cudnn
cuda/cudnn
安裝cuda、cudnn可以參考此前博主的【深度學習windows10環(huán)境配置詳細教程】,因為對于新手來說,需要注意的細節(jié)比較多,這里不浪費篇幅重復講述了。
cmake
CMake官方下載地址,下載cmake-3.27.7-windows-x86_64.msi。
添加到環(huán)境和安裝路徑博主根據(jù)自身情況作出了修改,其他都是默認安裝。
出現(xiàn)以下界面安裝成功。
opencv4.5.0
Opencv官方下載地址,下載OpenCV – 4.8.0 Sources,下載解壓opencv-4.8.0.zip。
opencv_contrib
opencv_contrib官方下載地址,選擇opencv對應的contrib版本,例如opencv4.8.0對應就是opencv_contrib-4.8.0.zip。下載后直接解壓。
CMake編譯
- 打開CMake,where is the source code是Opencv sources(博主是opencv-4.8.0)的文件夾位置,where to build the binaries是編譯opencv保存的文件夾位置(自定義),最后點左下角Configure。
- 選擇對應vs的版本(博主是vs2019),系統(tǒng)選擇x64,最后點右下角Finish。
- 顯示Configuring done后,在Search搜索框搜索帶cuda的關鍵字,全部勾選。
- Search搜索框搜索OPENCV_EXTRA_MODULES_PATH,添加解壓的opencv_contrib中的modules的路徑,再搜索并勾選OPENCV_ENABLE_NONFREE和 ENABLE_FAST_MATH選項。
- 將build_opencv_world選上,這可以將所有opencv的庫都編譯在一起,不需要自己手動選擇添加每個小模塊,但是具體的工程又不建議這種全家桶,再次點擊Configure。
- 顯示Configuring done后,將CUDA_ARCH_BIN顯卡算力內容改成自己顯卡的算力。官網(wǎng)查看顯卡算力地址,刪除小于自己顯卡算力的部分,再次點擊Configure。
- 顯示Configuring done后,點擊generate,顯示generating done,成功完成cmake編譯,在輸出的opencv保存文件夾位置中存在就生成了OpenCV.sln文件。
cmake編譯過程是會從githup上下載數(shù)據(jù),但是一般都會出現(xiàn)下載失敗的情況,這里建議讀者先跳到【可能出現(xiàn)的問題】這一小節(jié),來確認是不是自己也出現(xiàn)了下載失敗的情況。
VS2019編譯
- 使用VS2019 (以管理員方式運行) 打開剛剛編譯工程OpenCV.sln,在release|x64模式下,在解決方案資源管理器—>CMakeTargets—>右鍵點擊ALL_BUILD–>生成。
- 同樣在release|x64模式下,在解決方案資源管理器—>CMakeTargets—>右鍵點擊INSTALL–>生成。
編譯完成后在where to build the binaries位置的install文件夾內生成以下內容。
可能出現(xiàn)的問題
cmake編譯過程中可能出現(xiàn)的問題
cmake編譯出現(xiàn)Download failed的問題。
在where to build the binaries位置里面有個CMakeDownloadLog.txt,將里面下載鏈接復制到瀏覽器進行下載,
將其和where is the source code里面的.cache文件夾里面內容相對應,下圖是下載失敗時候,文件大小是0KB,手動下載完成后進行替換,對于部分文件則需要從網(wǎng)頁復制文本內容到其中。
注意用來替換的文件的名稱要與對應空文件的名稱保持一致。
將整個.cache都用同樣的方式進行處理。
強調一點,出現(xiàn)這種問題,可以暫時先走完CMake編譯過程,因為每一次Configuring都會有新的下載內容,然后再一次性將.cache的內容進行完整的替換,最后進行Configuring和Generate。
VS2019編譯過程中可能出現(xiàn)的問題
通常是對于部分資源,vs2019沒有管理員操作權限,因此只需要用管理員身份重新打開進行操作即可。

測試使用GPU
這里用一段簡單的c++代碼驗證安裝完成的opencv是否支持gpu設備。
#include <opencv2/opencv.hpp>
#include <opencv2/core/cuda.hpp>
int main() {// 檢查是否支持CUDAif (cv::cuda::getCudaEnabledDeviceCount()) {std::cout << "檢測到支持CUDA的設備數(shù)量" << cv::cuda::getCudaEnabledDeviceCount() <<std::endl;}else {std::cout << "未檢測到支持CUDA的設備" << std::endl;}return 0;
}
驗證成功,oepncv-cuda版本源碼編譯成功。
總結
盡可能簡單、詳細的介紹windows10下opencv4.8.0-cuda版本用源碼進行編譯的詳細流程。