如何编译OpenCV-2.3.x/OpenCV-2.4.x使其支持GPU-CUDA高速运算?

pofeiren0 2012-08-15

前面,我们讲到了使用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文件夹是我自己创建的)。

如何编译OpenCV-2.3.x/OpenCV-2.4.x使其支持GPU-CUDA高速运算?

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

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

如何编译OpenCV-2.3.x/OpenCV-2.4.x使其支持GPU-CUDA高速运算?

图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.  

相关推荐