基于QT5.14.2的OPENCV4.8.0的cuda11.4开发环境搭建和源码编译

目录

1.安装显卡驱动、cuda、cudnn

2.安装QT5.14.2

3.安装visual studio 2019

4.安装Cmake

5.下载OPENCV4.8和opencv_contrib-4.x

6.配置Cmake,进行编译

7.使用测试

备忘:

未能解决的问题1:

 未能解决的问题2:

参考博客:


为了在WINDOWS环境中可以运行OPNECV CUDA程序,所以对OPENCV源码进行编译,增加QT和CUDA适配,并增加外部库编译。

本文还包括了CUDA驱动和CUDNN的环境配置过程。

硬件平台GTX1050TI 算力6.1

cuda版本11.4  cudnn版本为11.x

QT版本5.14.2

vs2019

1.安装显卡驱动、cuda、cudnn

显卡驱动是自带的,选常规驱动安装软件就行(360驱动大师)

 通过上图看到显卡适配的cuda最大版本,注意是最大,一般别用最新的版本,我选择是11.4

到下方网站下载cuda驱动 ,选WIN10 选本地下载

得到 cudnn-windows-x86_64-8.9.2.26_cuda11-archive.zip

https://developer.nvidia.com/cuda-toolkit-archive

解压安装,选自定义安装,组件全选

安装完成后在shell里输入ncvv -V得到如下结果

接下来下载cudnn 需要账号  选择cuda11.x对应版本

Log in | NVIDIA Developer

下载好后解压

把里面三个文件夹的内容分别复制到

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\lib

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\include

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin

然后添加系统变量 path 以下内容,最后一项意义不大可以不添加

配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwidthTest.exe:

首先win+R启动cmd,cd到安装目录下的 …\extras\demo_suite,然后分别执行bandwidthTest.exe和deviceQuery.exe(进到目录后需要直接输“bandwidthTest.exe”和“deviceQuery.exe”),应该得到下图:

2.安装QT5.14.2

这个略过,教程太多

记得MINGW  MSVC都要装 选64位就行

3.安装visual studio 2019

这个也略过,安装的时候记得把C++选上

4.安装Cmake

Windows下CMake安装使用_cmake window_Word哥的博客-CSDN博客

5.下载OPENCV4.8和opencv_contrib-4.x

opencv去官网下载,点source下载,别下windows的

Releases - OpenCV

opencv_contrib-4.x.zip 去github下载

https://github.com/opencv/opencv_contrib

分别解压成两个文件夹放在opencv目录下,再新建一个new_build文件夹

6.配置Cmake,进行编译

添加源码目录,打勾advance

点configure,选vs2019  x64

点finish等待生成

 进行设置

search输入关键词找到设置选型

首先是mo,设置外部库目录 

然后是cuda全打勾

QT打勾

 然后是py                force_lib打开

var 取消 

 

 然后再点configure

搜cuda 设置算力  这个值去网上搜你手里显卡的算力

我这里1050是6.1

 然后搜QT   设置目录如下

 搜math   打勾两个

 搜world  打勾

搜free  打勾  不然SIFT用不了

搜opengl  打勾

 再点一次 configure

然后搜CVV  取消 不然编译过不了  world和CVV这俩东西只能二选一

然后再点一下 configure

去D:\opencv\new_build\   打开CMakeDownloadLog.txt  检查下载项是否都下载完成,这部分很难通过脚本下载,我是科学上网用浏览器一个一个复制链接下载的,全放在D:\opencv\opencv-4.8.0\.cache文件夹下,还好文件不多,累死人

下面这篇文章有办法直接下载,但我没试

Cmake 编译opencv缺少出现下载ffmpeg_ffmpeg_version.cmake_大海3004的博客-CSDN博客

有需要可以联系我提供这部分文件

全部文件识别没错是这样

然后看cmake 下方的日志

确认python是否被识别

 确认cuda  cudnn是否被识别

点击generate,无报错 

配置完成,点击generate

点击open project打开VS工程

核心就这两个

首先右键ALL-BUILD 选生成,这个过程挺长而且容易报错,VS环境只能选2017-2019

再右键INSTALL选生成,这个很快,可以看看具体拉取了什么

编译和安装结束,核心文件都在new_builed/install里

新增WIN系统环境变量

 

 重启计算机,适配新增变量

7.使用测试

使用VS2019进行测试

新建工程选择空白工程即可,新建main.cpp

#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/cudaarithm.hpp>
#include <iostream>

using namespace std;
using namespace cv;
using namespace cv::cuda;

int main()
{
    // OpenCV版本号
    cout << "OpenCV_Version: " << CV_VERSION << endl;
    // CUDA
    int num_devices = getCudaEnabledDeviceCount();
    if (num_devices)
        cout << "CUDA is available, num_devices:" << num_devices << endl;
    else
        cout << "CUDA is not available." << endl;
    //读取图片
    Mat img = imread("D:/CUDA_ARCH_BIN.png");

    imshow("picture", img);
    waitKey(0);
    return 0;
}

设置项目属性-VC++目录里新增包含目录和库目录

 设置编译器附加库目录

 设置输入  附加依赖项

 忘了新增一个QT的环境变量,不然运行程序会报错缺少QT5XXX.DLL

 

 测试结果:

备忘:

一次编译是不能同时出来debug和release版本的LIB文件的,需要编译两次,在VS2019的编译工程中切换debug和release 

未能解决的问题1:

QT creator上运行上述代码还有问题,提示的是CV的函数未能定义,应该是LIB没有读进去

不知道是不是因为用msvc编译出来的.lib库与QT使用的MINGW需要的.a库对不上

目前和QT的联合开发是通过vs2019上安装QT插件来实现的,已经可以正常运行程序了,流程参考参考博客2

 未能解决的问题2:

 python还是不能import cv2 我反反复复试了几次INSTALL和安装卸载opencv-python

还是提示CV2模块找不到

参考博客:

Win11下配置OpenCV with CUDA_opencv配置cuda_静待梅花开的博客-CSDN博客

【VS2019 开发QT5 程序环境配置教程】_vs2019 安装qt5_码农365的博客-CSDN博客

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用\[1\]中提到了QtOpenCV的安装路径,引用\[2\]中提到了OpenCV的下载和解压步骤,引用\[3\]中提到了使用CMake进行编译的命令。 问题: 如何在Qt5.14.2中使用OpenCV? 回答: 在Qt5.14.2中使用OpenCV,首先需要下载并安装QtOpenCV。根据引用\[1\]中的路径,Qt安装在D:\software\Qt\Qt5.14.2OpenCV安装在D:\software\opencv346\opencv。然后,根据引用\[2\]中的步骤,将OpenCV4.5.0和opencv_contrib4.5.0解压到相应的文件夹中。接下来,在OpenCV4.5.0文件夹下创建一个build文件夹,并打开终端进入build文件夹。最后,根据引用\[3\]中的命令执行cmake编译,指定CMAKE_BUILD_TYPE为RELEASE,OPENCV_EXTRA_MODULES_PATH为opencv_contrib-4.5.0/modules/face的路径,然后执行编译命令。这样就可以在Qt5.14.2中使用OpenCV了。 #### 引用[.reference_title] - *1* [【QtQt5.14.2配置OpenCV3.4.6环境](https://blog.csdn.net/iiinoname/article/details/125330878)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ubuntu20下Qt5.14.2+OpenCV(含Contrib)-4.5.0环境搭建](https://blog.csdn.net/qq_40170041/article/details/128917337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值