编译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