opencv_contrib 添加cuda支持

来源:互联网 发布:淘宝上传图片 编辑:程序博客网 时间:2024/05/18 17:59

我们如果要想使用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
Intel TBB  https://www.threadingbuildingblocks.org/download
注意:在下载完这些库后自己添加环境变量(除了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


2.下载cmake(最好是2.4.3版,用2.4.6有莫名其妙的错误)

   

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目录至于环境变量目录路径前面

0 0
原创粉丝点击