vs2019编译opencv+contribute+gpu

2024-09-03 07:12

本文主要是介绍vs2019编译opencv+contribute+gpu,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、提前准备

vs2019、opencv4.4.0、opencv-contribute4.4.0、CUDA Toolkit 11.8(不能高于自己电脑的CUDA版本)、CUDNN8.9.6

ps:先提前准备环境

1)cmd中查看:nvidia-smi查看自己的显卡信息,不存在下述信息的话则需先安装英伟达显卡驱动程序。

从下图可知,本机显卡驱动支持的cuda最高版本为12.2,那么只需要安装比12.2低或者相同的CUDA库即可。

需要注意的是,有些高版本的cuda不支持vs2022,比如cuda11.2最高只支持vs2019,而不支持vs2022。

2)安装CUDA及CUDNN

安装完CUDA后将CUDNN内的文件拷贝到CUDA安装文件夹,与文件夹内的合并。

指令:nvcc -V 

在控制台中输入bandwidthTest.exe及deviceQuery.exe的所在目录,如我的:

F:\installfile\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\demo_suite

运行该程序:./bandwidthTest.exe及 ./deviceQuery.exe

出现Result = PASS信息表示成功安装CUDA及CUDNN

2、cmake配置编译选项时出现的问题

Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules are removed. Run "cmake --help-policy CMP0148" for policy details.

解决办法:在文件OpenCVUtils.cmake

F:\installfile\opencv4.4.0\opencv+contrib+gpu\sources\cmake\OpenCVUtils.cmake

的第一行添加

if(POLICY CMP0148) 
cmake_policy(SET CMP0148 OLD)
endif()if(POLICY CMP0146) 
cmake_policy(SET CMP0146 OLD)
endif()

3、若用vs2022编译的话可能会在编译时出现很多报错,因此改为vs2019来配置及编译。

4、配置步骤:

1)打开cmake,输入源码路径及生成工程的路径,后

2)Configure结束后,在search框里搜索并配置一些选项:

  1. 勾选 BUILD_opencv_world(它会将生成的所有库都集中在opencv_world440.lib或opencv_world440d.lib一个包中,而不是分散存放的,便于后续配置工程项目)
  2. 配置 OPENCV_EXTRA_MODULES_PATH,填写contrib源码的modules文件夹的位置,如我的:
    F:\installfile\opencv4.4.0\opencv+contrib+gpu\opencv_contrib-4.4.0\modules
  3. 搜索“cuda”,勾选 BUILD_CUDA_STUBS、OPENCV_DNN_CUDA、WITH_CUDA
  4. 勾选 ENABLE_FAST_MATH 
  5. 勾选 OPENCV_ENABLE_NONFREE
  6. 取消勾选 OpenCV_GENERATE_SETUPVARS
  7. 分别搜索“python”,“java”,“js”,“tests”,分别取消勾选所有已经勾选的python、java、js、tests相关选项

3)点击Configure进行第二次Configure

4)新配置以下

  1. 勾选 CUDA_FAST_MATH
  2. CUDA_ARCH_BIN 填写对应GPU的算力指数,如果已经有了多个值,可以把其他的值删除以加速后续编译,算力指数查询链接:CUDA GPUs - Compute Capability | NVIDIA Developer

5)再次点击Configure,同时检查一下生成信息:

没有报错的话,接着点击Generate生成工程。

6)在自己camke配置的工程目录下,打开生成的工程

  1. 选择Release(或Debug)和x64平台
  2. 右键ALL_BUILD工程,点击  生成
  3. 右键INSTALL工程,点击  仅用于项目   点击     仅生成INSTALL

至此编译结束,编译生成的文件在上述步骤二配置cmake时指定的build文件夹下的install文件夹中。

7)配置vs的opencv工程:常规的添加库目录、包含目录以及附加依赖库,并用以下代码来检验opencv库是否具备CUDA的支持

#include <opencv2/core.hpp>
#include <opencv2/core/cuda.hpp>
#include <iostream>int main() 
{std::cout << "OpenCV version: " << CV_VERSION << std::endl;// 检查是否有可用的 CUDA 设备if (cv::cuda::getCudaEnabledDeviceCount() > 0) {std::cout << "CUDA is enabled and available devices found." << std::endl;} else {std::cout << "CUDA is not enabled or no CUDA devices found." << std::endl;}return 0;
}

这篇关于vs2019编译opencv+contribute+gpu的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132375

相关文章

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

如何用GPU算力卡P100玩黑神话悟空?

精力有限,只记录关键信息,希望未来能够有助于其他人。 文章目录 综述背景评估游戏性能需求显卡需求CPU和内存系统需求主机需求显式需求 实操硬件安装安装操作系统Win11安装驱动修改注册表选择程序使用什么GPU 安装黑神话悟空其他 综述 用P100 + PCIe Gen3.0 + Dell720服务器(32C64G),运行黑神话悟空画质中等流畅运行。 背景 假设有一张P100-

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

opencv 滚动条

参数介绍:createTrackbar( trackbarname , "hello" , &alpha_slider ,alpha_max ,  on_trackbar )  ;在标签中显示的文字(提示滑动条的用途) TrackbarName创建的滑动条要放置窗体的名字 “hello”滑动条的取值范围从 0 到 alpha_max (最小值只能为 zero).滑动后的值存放在

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码

树莓派5_opencv笔记27:Opencv录制视频(无声音)

今日继续学习树莓派5 8G:(Raspberry Pi,简称RPi或RasPi)  本人所用树莓派5 装载的系统与版本如下:  版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下: 今天就水一篇文章,用树莓派摄像头,Opencv录制一段视频保存在指定目录... 文章提供测试代码讲解,整体代码贴出、测试效果图 目录 阶段一:录制一段

Verybot之OpenCV应用三:色标跟踪

下面的这个应用主要完成的是Verybot跟踪色标的功能,识别部分还是居于OpenCV编写,色标跟踪一般需要将图像的颜色模式进行转换,将RGB转换为HSV,因为对HSV格式下的图像进行识别时受光线的影响比较小,但是也有采用RGB模式来进行识别的情况,这种情况一般光线条件比较固定,背景跟识别物在颜色上很容易区分出来。         下面这个程序的流程大致是这样的: