CUDA的OpenCV-2.3.x/OpenCV-2.4.x编译

107 篇文章 56 订阅
版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。

    博客地址http://blog.csdn.net/shuxiao9058

    原始作者:季亚


    前面,我们讲到了使用OpenCV-2.4.0在Visual Studio 2005/2008/2010常规编译的方法,本文则主要讲述如何使OpenCV支持CUDA高速运算。

   我们将要使用的工具除了常规编译方式使用的工具外,还要使用CUDA tookit和GPU Computing SDK,如本人使用的版本分别为cudatoolkit_4.2.9_win_64.msi和gpucomputingsdk_4.2.9_win_64.exe(我的电脑是64位系统),相关文件可以从官网下载。

    下载完成后并安装,确保CUDA SDK的bin目录(“C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK4.2\C\common\bin”)已经添加到环境变量中后,我们就开始编译支持CUDA高速运算的OpenCV。

    本文以Visual Studio 2005 Professional为例,其他编译器总体一样,只不过在intel tbb环境变量配置这一步略微不同,可以参考博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件

一、生成项目文件

    假设我们已经将OpenCV-2.4.0源代码放到“C:\Program Files\OpenCV\src”目录下,安装完成cmake,并将ntel tbb可执行目录添加到系统环境变量,并使变量生效,相关部分参考博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件

    运行cmake,如图1所示,然后单击“Where is the source code:”右侧的“Browse Source”,浏览到“C:/ProgramFiles/OpenCV/src”文件夹,单击“where to build the binaries:”右侧的“Browse Build”,浏览到“C:/Program Files/OpenCV/vs2005”文件夹(vs2005文件夹是我自己创建的)。

图1 配置源代码和生成目录

    然后单击左下方的“Configure”按钮,这时会弹出“cmake-gui”窗口,在“Specify the generator for this project”下拉菜单选择“Visual Studio 8 2005”、“Usedefault native compilers”后,单击“Finish”按钮,如图2所示。

图2 生成项目类型选择

完成以上操作后勾选“BUILD_EXAMPLES”、“CUDA_BUILD_CBUIN”、“CUDA_VERBOSE_BUILD”、“WITH_TBB”和“WITH_CUBLAS” 、“WITH_CUDA”注意这里千万不要勾选“CUDA_BUILD_EMULATION”选项,不然会报错的,如下所示。

  1. CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindCUDA.cmake:616 (message):  
  2.   CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards.  You must  
  3.   disable it to proceed.  You have version 4.2.  
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindCUDA.cmake:616 (message):
  CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards.  You must
  disable it to proceed.  You have version 4.2.

    这是因为在从CUDA 4.0开始NPP(NVIDIA Performance Primitives library,英伟达基本性能库)就是CUDA tookit的一部分面不再单独提供了。

    配置tbb相关目录(包含目录、可执行目录和库目录),详情参考本人博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件。这里不再赘述。

    单击“Configure”按钮,所有红色行已经变为白色,在下方的信息我们会看到如下信息:

  1. Other third-party libraries:  
  2.   Use IPP:                     NO  
  3.   Use TBB:                     YES (ver 4.0 interface 6004)  
  4.   Use Cuda:                    YES (ver 4.2)  
  5.   Use Eigen:                   NO  
  6.   
  7. NVIDIA CUDA:                   (ver 4.2)  
  8.   Use CUFFT:                   YES  
  9.   Use CUBLAS:                  YES  
  10.   NVIDIA GPU arch:             11 12 13 20 21  
  11.   NVIDIA PTX archs:            11 12 13 20 21  
  12.   NVIDIA GPU features:         11 12 13 20 20 20  
  Other third-party libraries:
    Use IPP:                     NO
    Use TBB:                     YES (ver 4.0 interface 6004)
    Use Cuda:                    YES (ver 4.2)
    Use Eigen:                   NO

  NVIDIA CUDA:                   (ver 4.2)
    Use CUFFT:                   YES
    Use CUBLAS:                  YES
    NVIDIA GPU arch:             11 12 13 20 21
    NVIDIA PTX archs:            11 12 13 20 21
    NVIDIA GPU features:         11 12 13 20 20 20

    特别注意,有两条为“Use TBB: YES (ver 4.0 interface 6004)”和“Use Cuda: YES (ver 4.2)”的字样,证明我们已经将intel tbb和CUDA正确配置。

    最后点击Generate,下方的信息里面会有一条为“Generating done”的字样(如图3所示),而且我们已经成功生成项目文件(如图4所示)。

图3 “Generating done”

图4 成功生成项目文件

二、编译生成目标文件

三、整理目录

四、配置并测试OpenCV-2.4.0函数库

    说明:由于第二、第三和第四部分与本人另一篇博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件完全相同,只不过编译时需要相当长的时间,这里不再赘述。


参考链接:http://blog.cuvilib.com/2011/03/22/how-to-build-opencv-2-2-with-gpu-cuda-on-windows-7/


附件下载:

http://115.com/file/c2eplh5m#cudatoolkit_4.2.9_win_32.msi

http://115.com/file/ancmqi7g#gpucomputingsdk_4.2.9_win_32.exe

http://115.com/file/ancmij8r#cudatoolkit_4.2.9_win_64.msi

http://115.com/file/dpk7d5nz#gpucomputingsdk_4.2.9_win_64.exe


编译后文件(无需再编译,可直接使用):

http://download.csdn.net/detail/shuxiao9058/4272127 OpenCV-2.4.0-win32-vs2005(with CUDA)&tbb
http://download.csdn.net/detail/shuxiao9058/4272129 OpenCV-2.4.0-win32-vs2008(with CUDA)&tbb
http://download.csdn.net/detail/shuxiao9058/4272128 OpenCV-2.4.0-win32-vs2010(with CUDA)&tbb

http://blog.csdn.net/shuxiao9058/article/details/7529684

这个错误是由于编译过程中出现了问题导致的。根据引用\[1\]、\[2\]和\[3\]中的信息,可以看出这些错误是由于编译opencv时出现的问题。具体来说,引用\[1\]和\[2\]中的错误是由于在编译过程中出现了一些文件或目标的错误,而引用\[3\]中的错误是由于在编译python3模块时出现了错误。根据引用\[3\]中提到的解决方案,可以尝试打开cv2.cpp文件并在885行附近添加(char *)来解决问题。然而,对于你提到的最后一个错误,由于缺少相关的引用内容,我无法提供更具体的解决方案。建议你查找相关的错误信息和解决方案,或者向更专业的技术论坛或社区寻求帮助。 #### 引用[.reference_title] - *1* [make[2]: *** [modules/gapi/CMakeFiles/opencv_gapi.dir/build.make:869: modules/gapi/CMakeFiles/opencv](https://blog.csdn.net/AcetylcholineACh/article/details/129970610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [安装opencv3.2.0 cmake出现 CMakeFiles/Makefile2:1264: recipe for target 'modules/cudev/test/...](https://blog.csdn.net/qq_33202928/article/details/80079485)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [树莓派安装opencv报错:make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56...](https://blog.csdn.net/qq_44357371/article/details/105966714)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值