編譯opencv cuda源碼
? ?電腦安裝cuda 12.0或者11.8,根據你的電腦配置自行選擇
? 下載opencv 源碼
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
在opencv目錄里新建 build 文件夾
cd? build后? ?
cmake選項
cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D WITH_TBB=ON \-D WITH_V4L=ON \-D WITH_QT=ON \-D WITH_OPENGL=ON \-D WITH_CUDA=ON \-D CUDA_ARCH_BIN=7.5 \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \-D VTK_DIR=/usr/lib/x86_64-linux-gnu/cmake/vtk-8.2 \ # 根據實際路徑修改-D JAVA_INCLUDE_PATH=/usr/lib/jvm/java-8-openjdk-amd64/include \-D JAVA_INCLUDE_PATH2=/usr/lib/jvm/java-8-openjdk-amd64/include/linux \-D BUILD_opencv_python2=ON \-D BUILD_opencv_python3=ON \-D INSTALL_PYTHON_EXAMPLES=ON \-D INSTALL_C_EXAMPLES=OFF \-D OPENCV_GENERATE_PKGCONFIG=ON \-D BUILD_EXAMPLES=ON ..
使用多線程編譯
msbuild /m:%NUMBER_OF_PROCESSORS% /p:Configuration=Release /p:Platform=x64 OpenCV.sln
編譯運行測試程序,驗證opencv 是否正常使用cuda
#include <opencv2/opencv.hpp>
#include <iostream>int main() {// 檢查CUDA設備int count = cv::cuda::getCudaEnabledDeviceCount();std::cout << "CUDA設備數量: " << count << std::endl;if (count > 0) {cv::cuda::setDevice(0); // 選擇第一個CUDA設備cv::cuda::DeviceInfo info(0);std::cout << "當前CUDA設備: " << info.name() << std::endl;}return 0;
}
打印信息輸出如下,說明opencv cuda 開發環境搭建成功
CUDA設備數量: 1
當前CUDA設備: NVIDIA GeForce RTX 4060