opencv、opencv_contrib及cuda联合编译详细教程

最近在使用opencv时需要用cuda加速,网上了很多帖子,踩了很多雷,摸索出来了一点规律,分享给大家,一起探讨(我也是刚刚入手,因为踩了很多雷,所以才想记录分享一下,平时很懒的)。接下来进去正题!

环境要求:
1、硬盘需要40个G左右内存。
2、首先显卡要是NVIDIA显卡,查询显卡是否支持cuda,可以下载gpu-z,也可以去NVIDIA官网查看。

安装前准备
1、下载cuda并安装,cuda各个版本下载链接为:
https://developer.nvidia.com/cuda-toolkit-archive
2、下载opencv以及opencv_contrib:
github的opencv网址为:https://github.com/opencv
下载过程如下:
点击opencv可以下载opencv,点击opencv_contrib可以下载opencv_contrib。
列举下载opencv过程
点击opencv

点击release
选择相应版本exe文件下载
opencv_contrib下载过程:
点击release
选择与opemcv相同的版本下载,点击zip就可以下载

选择下载版本时需注意cuda版本是否支持相应的opencv版本,我的cuda版本是10.2,最开始我用的opencv3.4.1编译虽然成功了,但是运行程序的时候会报“
no kernel image is available for execution on the device”这个错,把opencv版本换成了3.4.10就成功了。血的教训!!!

这里插一句,在写记录的时候,还是截的opencv3.4.1的图,编译成功了,但是没办法使用,后面编译opencv3.4.10的时候,懒得截图了,就这样,这个联合编译过程和opencv版本无关,哪个版本都是一样的操作,意会就可以了!

下载完成后,把他们解压到同一个文件夹

cmake编译

开始cmake编译过程:
第一个选择opencv里面的source文件夹,第二个是编译后的文件存放位置

第一个选择opencv文件夹下的sources
选择完成后,点击Configure:
刚刚所说的编译后文件存放位置如果没有的话,cmake会根据你所输入的路径创建一个文件夹
后来我又试了一遍,vs2017不会比vs2019编译成功可能性大,应该还是和opencv以及cuda的版本选择有关,新的话还是推荐使用vs2019
接下来是不算漫长的等待。。。。。。
等待。。。。。。

这表示编译中出现了错误,要看D:/opencv/opencv341/opencv/newbuild/文件夹下的CMakeDownloadLog.txt;
编译完成后打开CMakeDownloadLog.txt
打开后是这个样子

解释一下第一段:后面雷同

do_copy
“opencv_ffmpeg.dll” “b8120c07962d591e2e9071a1bf566fd0”
“https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll”
“D:/opencv/opencv341/opencv/newbuild/3rdparty/ffmpeg”

#missing
“D:/opencv/opencv341/opencv/newbuild/3rdparty/ffmpeg/opencv_ffmpeg.dll”

这段话的意思是让我们把"opencv_ffmpeg.dll"拷贝到"D:/opencv/opencv341/opencv/newbuild/3rdparty/ffmpeg"这个文件夹下面,因为cmake没有找到这个文件,这个文件我们可以通过后面那个网址下载到,复制https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll

这个网址,在浏览器打开,就可以直接下载。
下载完成后拷贝到"D:/opencv/opencv341/opencv/newbuild/3rdparty/ffmpeg"这个文件夹下面。
你以为这就完了吗?
不,拷贝的时候你会发现,没有这个文件夹,怎么办,不要急。。。。。。后面还有一句话:
cmake_download
“D:/opencv/opencv341/opencv/sources/.cache/ffmpeg/b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll”
“https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll”

这句话的意思就是,你从那个网址上面下载的文件,可以改个名字,放在"D:/opencv/opencv341/opencv/sources/.cache/ffmpeg“这个文件夹下面,文件名就是:

“b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll"
拷贝时你会发现这个:
他们都是0kb,说明没有数据。

重复操作,知道所有的缺失文件被补齐。。。。。。
拷贝完成后,再次点击configure

你会发现,这次过去的真快,由此可以看出,时间久是因为他在下载那几个文件。

下面开始配置opencv_contrib
Github其实说明了配置步骤,

但是还有一个cuda,总的过程如下:
在search栏里输入extra,然后把opencv_contrib文件夹下的module添加进去

在search栏里输入non,在后面打勾,这个是使用nonfree模块

在search栏里输入cuda,把with_cuda打勾

在search栏里输入world,可以打勾,也可以不打,打勾会编译成一个opencv_world.lib,我没打,节省时间;但是后面配置opencv环境到vs上时添加lib就有点复杂,但是也只复杂一次

之后点击configure,如果出错继续看日志文件,然后重复操作,直到日志文件如下:

点击generate:
中间多等等没事的,编译久是在下载文件,多半下载不到。还是继续看那个cmake日志文件,补充下载文件,如果觉得github上下载慢的话,给出opencv3.4.1的缺失文件的下载地址:
https://download.csdn.net/download/hhhhhh1ll/12304735

Generate完成后,开始VS编译过程

VS编译过程
用vs2017打开OpenCV.sln,由于之前cmake选择的是vs2017,所以用vs2017打开.

找到CmakeTargets,右键选择生成解决方案,等待生成完毕(Debug模式下会生成Debug库,release模式下会生成release库,所以要操作两次)

等待完成后,点击Install,然后右键生成。一个模式下就完成了。更换模式后,重复操作。直到生成完毕;

PS:这个时间比较久,至少需要几个小时。

拷贝出Install,这就时生成好的库,之后再配置环境变量以及属性表

拷贝出去,齐活完事!
环境变量配置就和之前配置opencv一样,不会的话看别人的教程吧!这个不难!!

opencv、opencv_contrib及cuda联合编译详细教程相关推荐

  1. opencv在vs2012下重编译详细教程——解决按f11进入不了源代码

    最近用到opencv人脸识别的代码,想进源码看看实现过程,大家都知道opencv的源码在opencv/modules下,但是光看那么长的源代码实在麻烦,要是能在调试的时候按f11直接就能跟进内部代码就 ...

  2. linux内核编译最详细,Linux内核编译详细教程,linux内核编译

    Linux内核编译详细教程,linux内核编译 尝试编译下Linux-kernel 4.14.14,使用Ubuntu 16.04 64位 系统. kernel-4.14.14 内核文件约96MB,解压 ...

  3. 微信小程序如何进行反编译详细教程

    前言介绍 小程序反编译,其实还是简单的,要想拿到微信小程序源码,先要拿到小程序的包,用反编译脚本跑一下,微信小程序代码包里的所有文件.所有资源就出来了(除了project.config.json小程序 ...

  4. quartus和modelsim联合仿真详细教程

    利用quartus和modelsim联合仿真的功能,实现功能产生波形.详细步骤如下: 1.编辑verilog HDL语言 本次拟实现组合逻辑功能,其代码如下: 此为一组合逻辑电路,其原理图可在quar ...

  5. 最新小程序反编译详细教程,亲测可用

    小程序因为触手可及.自带推广等的特点,自诞生以来,实现了很多的商业场景,同时取代了App的大部分市场份额.其实小程序的开发和网页开发类似,同样使用的是JavaScript开发的,属于前端,所以借助一些 ...

  6. 实战6:基于OpenCV的人脸口罩识别检测详细教程

    背景介绍:     从19年疫情爆发到现在,佩戴口罩对大家来说已是常态.应运而生的就有了很多相关应用,如病毒发展预测.口罩佩戴检测以及戴口罩的人脸识别等. 今天介绍的人脸口罩佩戴检测系统主要使用Ope ...

  7. windows安装配置opencv opencv_contrib

    目录 前言 python用户 c++用户 一,下载cmake,opencv,opencv_contrib,Visual Studio 1,下载安装cmake 2,下载opencv,opencv_con ...

  8. OpenCV配置(利用Source编译,并配置扩展库opencv_contrib)

    OpenCV配置(利用Source编译,并配置扩展库opencv_contrib) 1. 配置所需(以个人版本为准) 1.1 CMake下载 1.2 OpenCV Source下载 1.3 OpenC ...

  9. 树莓派安装Opencv+Contrib和 QT 详细教程

    文章目录 前言 一.卸载OpenCV或重装系统 1.卸载OpenCV 2.重装系统 ①. 下载raspbian ②. 安装raspbian ③. 配置树莓派WiFi和SSH ④. 树莓派VNC设置 ⑤ ...

最新文章

  1. 鏖战双十一-阿里直播平台面临的技术挑战
  2. Cannot resolve xxx.5.5
  3. SAP UI5 walkthrough第一第二部分解析:data-sap-ui-libs=“sap.ui.commons,sap.ui.table“
  4. anaconda安装python视频_怎么安装anaconda?
  5. mongodb搭建和基本语法
  6. Convolutional Neural Networks (CNNs / ConvNets)
  7. ftok函数(file to key)
  8. 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)篇节一.doc...
  9. 用Pandas做透视表
  10. 设备价格暴涨让苹果公司在俄罗斯的最大授权经销商被迫关门谢客
  11. 东北大学《复合材料学》——关于组成复合材料的各部分的浸润性与相容性的探讨
  12. ARM CORTEX-M3简介
  13. 个人博客-1(登录功能模块实现)
  14. #define 宏的边际效应是什么
  15. 基于LMI的输出反馈H∞控制及其仿真(含实现程序)
  16. gyp: No Xcode or CLT version detected 报错
  17. 步进电机运动八大算法
  18. Inno Setup入门(十一)——完成安装后执行某些程序
  19. 根据等高线shp、点云绘制地形图
  20. 一篇好的技术文章特点

热门文章

  1. tar 命令打包压缩tar.gz,不包含当前文件夹路径
  2. 真丶深入理解 JavaScript 原型和原型链(二):原型和原型链
  3. 数据结构课程设计——迷宫问题课程设计报告
  4. 新型冠状病毒肺炎分析
  5. Oracle知识点总结(一)
  6. opencv 实现 Photoshop 亮度 对比度 调节功能
  7. 序列化之Serialize
  8. MySQL设置白名单,允许单个IP或某段节点登录
  9. 服务器上可以重装操作系统吗,服务器操作系统可以重装
  10. MATLAB运算总结(一)超详细