OpenCV颁布时并不包罗GPU模块,若要使用GPU加速的OpenCV代码需要从头编译OpenCV。
环境和资源筹备计算机必需有撑持CUDA 的NVIDIA GPU,并且装好了驱动措施。
安置CUDA toolkit,本文使用的是CUDA8.0。下载地点
下载OpenCV 3.2 选择的win pack版本,解压到指定文件目录下。下载地点
下载安置CMake。版本使用的是cmake-3.10.1-win64-x64.msi。下载地点
opencv-contirb-3.2.0下载,下载的是3.2.0的zip,解压到指定的目录下。opencv-contirb是opencv的扩展包。下载地点
Eigen下载,下载比来的不变版本即可,这里使用的是eigen-3.3.3,解压到指定目录下。Eigen是用来库优化矩阵的计算的。下载地点
tbb下载,tbb2017_20161004oss_win.zip,解压到指定目录下。Intel TBB是用来优化OpenCV库函数的多核计算性能的。下载地点
使用CMAKE进行工程配置打开CMAKE,输入OpenCV的sources路径,以及将要编译的功效路径(自主创建一个文件夹),勾选择Grouped选项。
选择编译器:选择Studio 2013 Win64。编译过程中,会下载第三方依赖库ffmpeg以及ippicv。网速欠安情况下的解决步伐。
BUIlD栏配置
展开BILD选项,打消BUILD_DOCS( 若选择还需要其它的依赖)。
CUDA栏配置
展开CUDA选项,CUDA_TOOLKIT_ROOT_DIR应该是CUDA8.0安置的文件目录,如果在你的电脑上安置了多个版本的CUDA,请将该路径改削到CUDA8.0的文件目录下。
CUDA_ARCH_BIN选项能够编译从计算能力2.0-6.1的所有架构的代码,这个可以按照本身的实际情况进行改削,如果不加改削的话,在i7措置惩罚惩罚器上编译的时间约莫是3.5个小时,但是编译之后的代码就可以在任何机器上部署了。
选中CUDA_FAST_MATH选项,将会加速某些数学计算。配置如下:
WITH栏配置
WITH_CUDA,WITH_FFT应该是默认选中的。
选中WITH_CUBLAS,从而可以使用cuBLAS。
选中WITH_EIGN,WITH_TBB
点击Configure,添加目录
OPENCV_EXTRRA_MODULES_PATH: ~/opencv_contrib-3.2.0/modules
EIGEN_INCLUDE_PATH:~/ eigen-eigen-5a0156e40feb
TBB_ENV_iNCLUDE: ~/tbb2017_20161004oss/include
TBB_ENV_LIB: ~/Library/tbb2017_20161004oss/lib/intel64/vc14/tbb.lib
TBB_ENV_LIB_DEBUG: ~/Library/tbb2017_20161004oss/lib/intel64/vc14/tbb_debug.lib
TBB_VER_FILE: ~/Library/tbb2017_20161004oss/include/tbb/tbb_stddef.h
注意已上的“~”都要落实到本身的文件目录下,按照解压的位置选择。
点击Configure,直到没有红色的警告呈现为止。
点击Generate,若告成功效类似如下:
点击Open Project,打开VS工程:
VS编译
在VS中点击Solution Explorer,注意将平台选择,我选择的是X64、RELEASE环境,此处按照本身的实际需求来。
因为OpenCv3.1.0在工程中搜索graphcuts.cpp,并打开,
将
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改削为:
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
选中CMakeTargets,右键ZERO_CHECK,单独编译一下此工程,看能否告成。如果编译告成,则进行下一步。
右键INSTALL选择build,这一步不只从头编译而且还将孕育产生的文件拷贝到install目录下。
安静沉着僻静的期待编译结束吧……
测试新建一个空的控制台措施,配置include路径,配置lib路径,注意在这里都要选择刚编译完的新的路径。
在Linker->Input 中需要导入新编译好的lib,小窍门是找到刚刚生成lib的文件夹,按住shift+右键,选择在此处打开命令行窗口,输入
dir /b > release.txt
然后,粘贴复制吧。