编译步骤:

本文写的是注意事项,不是完整流程:

dnn cuda编译

OpenCV4.4版本 DNN模块使用CUDA加速教程 VS2017 Window10_猛龙不过江的博客-CSDN博客

opencv mat cuda编译

windows下 编译CUDA版的opencv流程记录_sazass的博客-CSDN博客_opencv编译cuda

https://github.com/opencv/opencv

https://github.com/opencv/opencv_contrib

选择tags,

https://github.com/opencv/opencv_contrib/releases/tag/4.5.4

下载source code.zip

cmake gui对着下载后的根目录,如下图:

第一轮编译报错:

1.python版本报错,因为不用python,忽略掉

2.

CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
IPPICV: Download failed: 35;"SSL connect error"

For details please refer to the download log file:

下载失败解决:

进入opencv-4.5.4\3rdparty\ffmpeg目录
将 ffmpeg.cmake 的https://raw.githubusercontent.com
修改为:https://raw.staticdn.net

把代理关掉,下载再失败,自己去url里下载下来,拷贝到目录.cache\ffmpeg

3.

CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
FFMPEG: Download failed: 6;"Couldn't resolve host name"

For details please refer to the download log file:

CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
ADE: Download failed: 28;"Timeout was reached"

For details please refer to the download log file:

4.3等待第一轮编译完成后,勾选:BUILD_opencv_world

以及,勾选OPENCV_DNN_CUDA,选择解压好的opencv_contrib中modules路径添加进来。

勾选OPENCV_DNN_CUDA,

OPENCV_EXTRA_MODURES_PATH:

勾选 WITH_CUDA:

在OPENCV_EXTRA_MODULES_PATH 填入opencv_contrib/modules路径:

需要转化为右斜杠,否则会报错,"\r"

D:/project/opencv/opencv_contrib-4.5.4/modules

vs2017 社区版 generaer报错:

opencv threads:threads but the target was not found

vs2017 专业版编译ok。

https://blog.csdn.net/qq_30623591/article/details/82084113

opencv+CUDA9.1+vs2015环境搭建,编译opencv库,调用GPU加速运算_公子_羽的博客-CSDN博客_opencv 编译cuda

windows上编译自己的opencv(含cuda) - 知乎

使用OpenCV操作CUDA 图像_jacke121的专栏-CSDN博客

cuda11变化:

把cub目录提高到根目录下了。

#include <thrust/system/cuda/detail/cub/device/device_radix_sort.cuh>
#include <thrust/system/cuda/detail/cub/iterator/counting_input_iterator.cuh>

使用OpenCV操作CUDA送检图像到TensorRT(SSD模型)_ikevin的专栏-CSDN博客

Cuda::GpuMat imageGpu(cv::Size(640,480),CV_32FC4);

Capture>> frame;cvtColor(frame,imageRGBA,CV_RGB2BGRA);imageRGBA.convertTo(imageRGBA, CV_32FC4,4);imageGpu.upload(imageRGBA);
...
// Here is the memory data allocated when getting the GPU corresponding to the above upload
// That is, imageNetMean's first parameter parameter
(float4*)imageGpu.ptr<float4>()cudaError_t cudaPreImageNetMean(float4* input, size_t inputWidth,Size_t inputHeight,float* output,size_t outputWidth, size_t outputHeight, Const float3& mean_value );

完整代码:GitHub - wkexinw/tensorSSD: Deep-Learn model SSD_300x300 transplante to TensorRT(Nvidia Jetson Tx2)

for (int i = 0; i < 8; i++) {std::string file_name = "D:/work/SDKProject/NeuroDetectionV1/fastertest/testimg/1111/4DA9523CCE2B649D39496741D6E3284E1330013_c.jpg";cv::Mat image = cv::imread(file_name);//std::cout << "image:" << filelist[i] << std::endl;if (image.empty()) {std::cout << "读入图片为空,请检查路径!" << std::endl;system("pause");return -1;}DWORD start2 = GetTickCount();//cv::Mat imageRGB;//image.convertTo(imageRGB, CV_32FC3, 3);//cv::cuda::GpuMat imageGpu(cv::Size(image.cols, image.rows), CV_32FC3);//imageGpu.upload(imageRGB);cv::cuda::GpuMat imageGpu(cv::Size(image.cols, image.rows), CV_8UC3);cv::cuda::GpuMat imageRGB;imageGpu.upload(image);imageGpu.convertTo(imageRGB, CV_32FC3, 3);DWORD end2 = GetTickCount();std::cout << "gpu img time:" << end2 - start2 << "ms " << image.cols << " " << image.rows << std::endl;DWORD start3 = GetTickCount();std::vector<float> img;//width and height of input imageint height = image.rows;int width = image.cols;img = convertMat2Vector<float>(image);std::vector<float> data(1 * height * width * 3, 0);for (int i = 0; i < height * width * 3; i++)data[0 * height * width * 3 + i] = img[i];DWORD end3 = GetTickCount();std::cout << "cpu img time:" << end3 - start3 << "ms " << image.cols << " " << image.rows << std::endl;}

segmentation/trt_sample.cpp at d86c237e1191f159d39e115df13d691ab65752c2 · novaHardware/segmentation · GitHub

// preprocessing stage ------------------------------------------------------------------------------------------------
void preprocessImage(const std::string& image_path, float* gpu_input, const nvinfer1::Dims& dims)
{// read input imagecv::Mat frame = cv::imread(image_path);if (frame.empty()){std::cerr << "Input image " << image_path << " load failed\n";return;}cv::cuda::GpuMat gpu_frame;// upload image to GPUgpu_frame.upload(frame);auto input_width = dims.d[2];auto input_height = dims.d[1];auto channels = dims.d[0];auto input_size = cv::Size(input_width, input_height);// resizecv::cuda::GpuMat resized;cv::cuda::resize(gpu_frame, resized, input_size, 0, 0, cv::INTER_NEAREST);// normalizecv::cuda::GpuMat flt_image;resized.convertTo(flt_image, CV_32FC3, 1.f / 255.f);cv::cuda::subtract(flt_image, cv::Scalar(0.485f, 0.456f, 0.406f), flt_image, cv::noArray(), -1);cv::cuda::divide(flt_image, cv::Scalar(0.229f, 0.224f, 0.225f), flt_image, 1, -1);// to tensorstd::vector<cv::cuda::GpuMat> chw;for (size_t i = 0; i < channels; ++i){chw.emplace_back(cv::cuda::GpuMat(input_size, CV_32FC1, gpu_input + i * input_width * input_height));}cv::cuda::split(flt_image, chw);
}

Window编译Opencv CUDA相关推荐

  1. 胎儿式保姆级教程:Jetson Xavier NX镜像烧录、开机配置、中文配置、风扇设置、远程桌面、文件传输配置、pycharm安装环境配置,QQ,opencv(cuda编译),torch(GPU).

    一.使用的硬件:nx板子.原装充电器.有线鼠标(USB).有线键盘(USB).有线摄像头(USB).7寸触摸显示屏.20寸大显示屏(显示屏有一个就可以,大屏幕更加方便).SD卡(128G,用64g也可 ...

  2. python opencv调用cuda_Win10使用VS2019从源码编译OpenCV 4.4 + CUDA 11.0 + Cudnn 8.0 + python3

    本文主要介绍Win10使用VS2019从源码编译OpenCV 4.4,并使用opencv_contrib支持CUDA 11.0 + Cudnn 8.0,以及对python3的支持. 1 首先准备安装环 ...

  3. 重新编译Opencv:Opencv3.2.0+CUDA7.5+VS2013+Cmake3.8+Quadro K620显卡+Win7系统

    项目说明:因为我要用opencv里的GPU模块,加速Sift图像拼接算法.所以开始了"参无人寰"的opencv重新编译.一下内容折腾我将近20天,特此记录,献给同样是菜鸟的我们,以 ...

  4. AI视频行为分析系统项目复盘——技术篇1:Ubuntu 18.04部署编译OpenCV+contrib、TensorFlow2.1、CUDA10.1+cuDNN7.6.5、tensorRT6.0.1等

    0 项目背景 接手他人的项目,全过程重头梳理下. 7台服务器,其中6台GPU服务器(GPU:2*2080Ti,CPU:2*Xeon Gold 5118(12核24线程)),一台调度服务器,Ubuntu ...

  5. CMake来编译OpenCV,细致教程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.openCV配置cmake编译 二.使用步骤 1.下载openCV [openCV官网](https://open ...

  6. Win10+Python3+OpenCV+CUDA——在win中配置OpenCV4.5并与Python环境绑定

    Win10+Python3+OpenCV+CUDA--在win中配置OpenCV4.5并与Python环境绑定 前言 安装Anaconda和基本库 下载对应版本的CUDA 配置方案1.通过下载预购建文 ...

  7. 树莓派3b+快速编译opencv成功案例指导(保姆级教程)

    如果对opencv的版本没有特别要求建议直接去找已经安装好opencv的镜像.那个才是最快的速度! 真是亲身体验!就差人傻了!先1我的对树莓派基本小白一个好吧,只能出一个傻瓜式教程了. 不想看傻瓜式教 ...

  8. Qt之CMake和MinGW编译OpenCV

    这里编译的是最新版OpenCV3.4.3,编译过程比较曲折,大部分编译错误都可以查得到解决方法,也遇到了Google无果的错误,好在最后还是解决了,特此记录. 编译环境 win10-64bit Qt5 ...

  9. Visual Studio 2017环境cmake编译opencv 4.3.0+opencv_contrib 4.3.0(保证成功,保姆级教学,呕心沥血)

    前言:为什么要装opencv_contrib opencv3的版本之后只包含基本内容,众多著名的检测算子(如SIFT.SURF和ORB等内容)因为版权问题转移到了一个名为xfeature2d的第三方库 ...

最新文章

  1. 简略解释memset函数的用法
  2. Centos 安装Mongo DB
  3. 自定义起始时间的时间戳计算(个人代码记录)
  4. 前端 CSS Framework --- NEC (网易)
  5. vue 组件基本使用
  6. eShopOnContainers 知多少[12]:Envoy gateways
  7. mysql 慢查询过多_MySQL 慢查询优化
  8. python定时重启程序
  9. 3ds MAX 2016破解激活详细步骤分享
  10. 谈谈我所了解的数据分析行业(下)
  11. php本地环境搭建教程,用 phpstudy 搭建本地 php 环境及安装 wordpress 教程
  12. Usage of API documented as @since 1.8+ less... (Ctrl+F1) Inspection info: This inspection finds all
  13. Windows200864位操作系统下的SQLPLUS.EXE 无法找到入口解决办法和Oracle环境变量的设置
  14. java斗地主发牌_java斗地主发牌程序
  15. 海康摄像头检测摄像头是否处于在线状态
  16. c语言中scanf返回值被忽略,返回值被忽略scanf是什么意思
  17. ASS字幕制作和压制教程
  18. 2020年11月28日天梯赛GPLT总决赛(全部题目 + 189分代码答案)
  19. 什么是日志审计系统?性价比较高的日志审计系统有哪些?
  20. python 教程英语版_Python基础教程第3版 英文原版pdf

热门文章

  1. python 多进程异常处理
  2. Java接口interface
  3. Android开发--事件的处理/按键按下,弹起,触摸事件等
  4. 用户空间增加、缩减内存
  5. ngnix mysql 缓存清除_利用Proxy Cache使Nginx对静态资源进行缓存
  6. php p3p跨域登录,php+ajax实现多域名跨域登录例子(基于P3P)
  7. idea修改java和jsp不起作用_使用IDEA编写jsp时EL表达式不起作用的问题及解决方法...
  8. tab 触发ajax请求,防止重复发送ajax请求的思索
  9. java中字符流 字节流_理解Java中字符流与字节流的区别
  10. php html补全,PHP实现HTML标签自动补全代码