我们如果要想使用opencv中的gpu模块,就必须再一次编译opencv中cuda模块,因为我们默认下载的opencv官方库下的build文件夹下是没有cuda模块的lib,dll文件的。因此我们需要再一次编译opencv的sources源码。
在这里我不仅添加了opencv_contirb的扩展库,同时也添加了cuda支持。
首先,要想使用cuda模块,就必须要确保你的显卡是nvidia的。
1.需要用到的库:
OpenCV_Contrib库地址:
https://github.com/itseez/opencv_contrib
OpenCV 主库地址:
http://github.com/itseez/opencv
cuda-tookit 库地址:
https://developer.nvidia.com/cuda-toolkit
注意:在下载完这些库后自己添加环境变量(除了cuda-tooikit,安装cuda-tookit后自动添加)
如:OpenCV: H:\Program_Project_Code\OpenCV_lib\opencv3.1.0\build\bin
Intel TBB:D:\data\lntel TBB\tbb44_20160526oss_win\tbb44_20160526oss\bin\intel64\vc1
source code :
源代码路径为
OpenCV最新主库的路径(如:我的路径: H:\Program_Project_Code\OpenCV_lib\opencv3.1.0\sources)
build the binaries:
你想编译在哪个文件夹(如:H:\Program_Project_Code\OpenCV_lib\OpenCV3.1_Contrib_CUDA7.5\build)
----------》
按“Configure”选择编译器
3.配置:
勾选WITH_CUDA,WITH_CUBLAS,WITH_CUFFT,WITH_OPENGL,WITH_TBB,WITH_IPP,WITH_EIGEN
可以选择取消一些不必要选项:如:BUILD_DOCS,BUILD_EXAMPLES
找出OPENCV_EXTRA_MODULES_PATH选项,设置路径,即为你下载opencv_contrib库的路径(如: H:\Program_Project_Code\OpenCV_lib\opencv_contrib-master\opencv_contrib-master\modules)
再按
“Configure”,
选项TBB_INCLUDE_DIRS===》
选择你下载的Intel TBB的Includes路径(如:D:\data\lntel TBB\tbb44_20160526oss_win\tbb44_20160526oss\include)
再按
“Configure”,
检查选项TBB_LIB_DIR和TBB_STDDEF_PATH的路径是否正确
(如:
TBB_LIB_DIR
的路径:
D:\data\lntel TBB\tbb44_20160526oss_win\tbb44_20160526oss\lib\intel64\vc12
TBB_STDDEF_PATH
的路径:D:\data\lntel TBB\tbb44_20160526oss_win\tbb44_20160526oss\include\tbb\tbb_stddef.h
)
再按
“Configure”,出现“configure done”
则再按“Generate”出现“generate done”则说明 cmake编译成功。
4.编译
回到一开始自己建立的编译的文件夹(
H:\Program_Project_Code\OpenCV_lib\OpenCV3.1_Contrib_CUDA7.5\build
)
打开OpenCV.sln文件,找到:CMakeTargets下的INSTALL 右键选择“生成”。。。。。等待完成。若不成功出现失败,可以再“重新生成”(编译时间较长)
5.使用上述生成的支持cuda,opencv_contirb库
配置环境变量:H:\Program_Project_Code\OpenCV_lib\OpenCV3.1_Contrib_CUDA7.5\build\x64\v120\bin
提示:
在使用gpu模块下,要注意将支持cuda的库的环境变量设置在其他opencv库的环境变量的前面,因为这样会避免冲突。(如 我们在官网下载的官方opencv库build下的opencv_core310d.dll和我们上面编译的支持cuda的库下的opencv_core310d.dll,动态链接库文件名称是一样的,但一个是有cuda支持的,另一个是没有cuda支持的,因此,我们要将有cuda支持的库的bin目录至于环境变量目录路径前面)