opencv3.2的cuda重新编译教程

OpenCV3的GPU模块需要手动重新编译才可以使用。本文介绍了编译OpenCV3.2.0+ GPU模块的方法

 

需要准备,安装好vs2013

Vs2013可能无法运行,需要进行更新

进行update5就ok

 

前期准备:

查看自己显卡是否支持cuda

[win+R]打开[运行] -> 输入[cmd]按回车打开[命令行] -> 输入[start devmgmt.msc]按回车打开[设备管理器]在显示适配器选项中看自己的显卡型号。如图:


下载安装CUDA Tookit

Nvidia官网https://developer.nvidia.com/cuda-downloads 选择系统型号,下载CUDA Tookit,建议[Installer Type]选[exe(local)]。本人用的是v7.5版本

装上以后要设置系统变量,桌面上此电脑右键属性->高级系统设置->高级系统属性->高级->环境变量->系统变量中的Path


这里面有两个变量需要设置:...\CUDA\v7.5\bin;

                          ...\CUDA\v7.5\libnvvp;

设置完变量后需要验证是否成功安装CUDA

     [win+R]打开[运行] -> 输入[cmd]按回车打开[命令行] -> 输入[nvcc -V]   注意nvcc与-V之间有个空格。


这里显示CUDA版本为V7.5

重新编译opencv3.2.0

首先下载opencv3.2.0  http://opencv.org/

这个库是不去全的所以还要再下载一个opencv的扩展库opencv_contrib-3.2.0  

链接:http://pan.baidu.com/s/1c1E6oFI 密码:0nub。这个链接里有博主说的opencv_contrib-3.2.0  以及下面的cmake。

 并且解压在opencv目录下

安装cmake

下载Cmake工具并安装

安装完成后打开CMake (cmake-gui)

[Brouse Source…],选择OpenCV源码那个sources文件夹的路径。 
[Brouse Build…],选择要生成的工程的路径。

本人是在原opencv文件夹下新建CUDA文件夹,并把生成路径指定在此

第一次点击conflgue

会得到下图:


点击finish得到下图



在search栏填入opencv_extra得到下图


原本value是没有地址的需要把地址引入...pencv_contrib-3.2.0\opencv_contrib-3.2.0\modules

有几个需要注意的地方:


Build_CUDA_STUBS一定不要点


WITH_CUDA点上  一般是默认打钩的,其他的默认就好。

再次点击configure 轻松过

完成后再点击generate    


Cmake阶段就完成了。Cmake可以关闭了

进入之前cmake生成文件的文件夹


双击opencv


建议生成以下标注选项,因为全部生成文件时间很长,主要的失败了别的也没有什么意义


如果有错误直接进入相应的类文件单独生成

没有错误的话可以右击解决方案>>>生成解决方案


编译时间非常长,大约在2--4个小时时间

编译好后应该不会有什么错。如果有一两个Matlab啊Python啊之类的错误请无视之。如果几十个几百个错可能就会很大程度上影响使用了。

编译好后,找到解决方案目录里的[CMakeTargets]项展开的[INSTALL]项,右键->[Project Only(仅项目)]->[Build Only INSTALL(仅生成INSTALL)]。

就可以关闭vs2013了

再次打开之前生成工程的目录,找到install文件夹。这个文件夹就相当于原装OpenCV的那个build。只要把OpenCV环境变量指到这个下就能用新编译的OpenCV了

要注意之前如果是64位VC12生成的工程并且用DEBUG编译的OpenCV,新编译的OpenCV就只能用VC12 ×64 debug的运行库

编译完成后你可以打开你生成的库文件夹...build\x64\v12\lib


在vs2013新建一个项目


确定>>下一步>>空项目

配置调试器。注意用DEBUG x64的,没有的话新建一个。 
配置好工程属性中的[包含目录]、[库目录]、[输入->外部依赖项] 

把这些东西加入你的vs2013外部依赖项即可

整体类似于opencv3.2.0vs2013的配置过程

完成编译并配置

博主邮箱[email protected]。有问题可以博客留言或者邮箱联系



你可能感兴趣的:(opencv3.2的cuda重新编译教程)