EN
/video/39783988.html

win10 opencv gpu c 版本编译教程

2025-06-24 12:33:55 来源: 新华社
字号:默认 超大 | 打印 |

win10 opencv gpu c++版本编译教程

一、环境准备

cuda/cudnn。
  • 根据显卡选择合适的版本。
  • cuda下载地址
  • cudnn下载地址
cmake安装。
  • cmake下载地址。
opencv 源码和 opencv_contrib。
  • opencv4.8.8.0版,

  • opencv下载。

  • opencv_contrib下载

  • 注意:opencv cmake编译过程将下载第三方库,网络失败会导致编译失败,使用完整的cache文件可以加速编译。
    在这里插入图片描述
    注意:opencv cmake编译过程将下载第三方库,网络失败会导致编译失败,使用完整的cache文件可以加速编译。

二、CMake编译。

1、编译准备。
  • 把。.cache。复制。opencv4.8.0。源代码目录、开始编译cmake。
    在这里插入图片描述
1、打开CMake󿼌where is the source code是Opencv sources(opencv-4.8.0)文件夹位置,where to build the 编译opencv保存的文件夹位置(自定义),在左下角。

第一次点击Configure。2、选择编译器࿰在弹出窗口c;选择相应的vs版本。3、显示Configuring done后�用cuda搜索Search搜索框中的关键字,全部勾选。
在这里插入图片描述
4、搜索Search搜索框。
在这里插入图片描述
OPENCV_EXTRA_MODULES_PATH。
在这里插入图片描述
,添加解压。opencv_contrib。modules路径在中间。5、选择。build_opencv_world。
在这里插入图片描述
所有opencv的库都可以打包编译,C+后续配置;+opencv环境不需要手动选择添加每个小模块。6、对python、java、js、选择tests相关选项,分别用Search搜索框搜索“”python",“java",“js",“tests",根据需要选择和取消相关选项󿼌默认选择,我们只需要cƱ+相关,所有这些都被取消了, 第二次点击Configure。
在这里插入图片描述
、显示Configuring done后�搜索。arch。选择需要支持的显卡计算能力。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
8、搜索。ENABLE_FAST_MATH。选择,
在这里插入图片描述

第三次点击Configure9、显示Configuring done后�点击generate,显示generating done,cmake编译成功完成3、vs编译、release模式编译需要选择#xff0c;在配置管理器中勾选install。2、 ALL_BUILD 右键 点击生成�等待2-3小时的编译
在这里插入图片描述
3、releasease也是如此|x64模式下,解决方案资源管理器—>CMakeTargets—>点击INSTALL–>生成。
在这里插入图片描述

4、编译完成后,安装目录如下。

三、测试gpu功能。

在这里插入图片描述
简单测试c++代码。
在这里插入图片描述
#include #include #include #include #include #include int main(){ // 检查CUDA是否可用 if (!cv::cuda::getCudaEnabledDeviceCount()) { std::cerr << "CUDA is not available on this system." << std::endl; return -1; } // 创建三个单通道GPU矩阵 cv::cuda::GpuMat gpumat1(2, 2, CV_8UC1, cv::Scalar(10)); cv::cuda::GpuMat gpumat2(2) 2, CV_8UC1, cv::Scalar(20)); cv::cuda::GpuMat gpumat3(2, 2, CV_8UC1, cv::Scalar(30)); // 创建一个保存这三个矩阵的向量 std::vector gpuMats; gpuMats.push_back(gpumat1); gpuMats.push_back(gpumat2); gpuMats.push_back(gpumat3); // 使用merge函数将这三个矩阵合并到一个三通道GPU矩阵 cv::cuda::GpuMat mergedMat; cv::cuda::merge(gpuMats, mergedMat); // 创建输出矩阵来保存阈值操作的结果 cv::cuda::GpuMat thresholdMat; // 应用程序阈值操作c;50࿰设置阈值c;最大值设置为100 cv::cuda::threshold(mergedMat, thresholdMat, 50, 100, cv::THRESH_BINARY); // 将阈值操作结果下载到CPU cv::Mat cpuThresholdMat; thresholdMat.download(cpuThresholdMat); // 打印结果 std::cout << "Threshold result:\n" << cpuThresholdMat << std::endl; return 0;}。
在这里插入图片描述
#xff1输出结果a;
在这里插入图片描述

【我要纠错】责任编辑:新华社