1、 查看本机配置,查看显卡类型是否支持NVIDIA GPU,本机显卡为NVIDIA GeForce 8400 GS;
2、 从http://www.nvidia.cn/Download/index.aspx?lang=cn下载最新驱动并安装;
3、 从https://developer.nvidia.com/cuda-toolkit根据本机类型下载相应最新版的CUDA Toolkit5.0,安装,并通过样本程序验证其安装正确;
4、 将C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin添加到环境变量中(检查是否已经默认添加);
5、 从http://threadingbuildingblocks.org/下载最新版的TBB4.1,解压缩,并将其bin目录D:\soft\OpenCV2.4.6\TBB\tbb41_20130613oss\bin\ia32\vc10添加到环境变量中,注销或重启;
6、 从http://opencv.org/downloads.html 下载最新版本的OpenCV2.4.6,并解压缩到D:\soft\OpenCV2.4.6文件夹中;
7、 从http://www.cmake.org/cmake/resources/software.html下载最新版本的CMake2.8.11.2并安装;
8、 打开CMake,在Where isthe source code:中选择D:\soft\OpenCV2.4.6\opencv文件夹,在Where to buildthe binaries:中选择D:/soft/OpenCV2.4.6/vs2010_GPU文件夹,此文件夹为手动创建;
9、 点击Configure按钮,在弹出的对话框中选择VisualStudio 10,然后点击Finish;
10、 如果有红色框出现,勾选BUILD_EXAMPLES、WITH_TBB、WITH_CUBLAS、WITH_CUDA、WITH_CUFFT,然后再次点击Configure按钮;
11、 如果还有红色框出现,TBB_INCLUDE_DIRS,将其值改为D:\soft\OpenCV2.4.6\TBB\tbb41_20130613oss\include为TBB中include所在的目录,然后再次点击Configure按钮;
12、 如何还有红色框出现,TBB_LIB_DIR、TBB_STDDEF_PATH,再次点击Configure按钮;
13、 如果在下方信息框中有:Use TBB: YES(ver 4.1 interface 6105),Use Cuda: YES(ver5.0),证明我们已经将inteltbb和CUDA正确配置;
14、 点击Generate按钮,此时会在D:\soft\OpenCV2.4.6\vs2010_GPU文件夹下生成OpenCV.sln文件;
15、 以管理员身份,使用vs2010打开OpenCV.sln文件,选择View--> Properties Manager-->分别选中ALL_BUILD中的Debug和Release上的Microsoft.Cpp.Win32.user,依次添加inteltbb和CUDA 的Executable Directories、Include Directories和Library Directories,点击右键-->Properties:VC++ Directories,Include Directories:D:\soft\OpenCV2.4.6\TBB\tbb41_20130613oss\include C:\Program Files\NVIDIAGPU Computing Toolkit\CUDA\v5.0\include;Library Directories:D:\soft\OpenCV2.4.6\TBB\tbb41_20130613oss\lib\ia32\vc10 C:\Program Files\NVIDIA GPU ComputingToolkit\CUDA\v5.0\lib\Win32;Executable Directories:D:\soft\OpenCV2.4.6\TBB\tbb41_20130613oss\bin\ia32\vc10 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin;
16、 选中modules中的opencv_gpu,点击右键,选择Properties-->Linker-->Input-->Ignore SpecificDefault Libraries加入libcmtlibcmtd;
17、 分别在Debug和Release下,选择Solution Explorer里的Solution OpenCV,点击右键,运行”Rebuild Solution”,点击CMakeTargets下的INSTALL,build;会在D:\soft\OpenCV2.4.3\vs2010\install文件夹下的bin文件夹中存放相应的动态库,在lib文件夹下存放相应的静态库;
18、 打开vs2010,新建一个控制台应用程序,为vs2010配置OpenCV环境:选择View--> Properties Manager-->分别选中Debug和Release上的Microsoft.Cpp.Win32.user,点击右键-->Properties:VC++ Directories,Include Directories:D:\Soft\OpenCV2.4.6\vs2010_GPU\install\include;D:\Soft\OpenCV2.4.6\vs2010_GPU\install\include\opencv;D:\Soft\OpenCV2.4.6\vs2010_GPU\install\include\opencv2;Library Directories:D:\Soft\OpenCV2.4.6\vs2010_GPU\install\lib;
19、 选中工程-->Properties-->Configuration Properties-->Linker-->Input-->AdditionalDependencies:Debug和Release,添加相应的.lib库;
20、 将D:\soft\OpenCV2.4.6\vs2010_GPU\install\bin加入到windows系统环境变量Path中,重启。
说明:
(1)、安装CUDA Toolkit时最好不要修改其默认的安装目录;
(2)、其中TBB不是必须的,也可不用安装,即第5、11、12步可省略;
(3)、为了缩短编译时间,可以通过CMake中改变CUDA_ARCH_BIN、CUDA_ARCH_PTX值进行设置,将BUILD_EXAMPLES和WITH_TBB的勾选去掉;
(4)、在编译前最好把360安全卫士和杀毒软件关闭;
(5)、也可不用管理员身份打开OpenCV.sln,第15步的属性配置也不是必须的;
(6)、也可以不用修改opencv_gpu模块的属性配置,默认即可,即第16步也不是必须的;
(7)、编译过程中会弹出数次对话框,如出现宏对话框则点击Cancel选项,其它则选择Yes选项;
(8) 、编译成功后的库也可以直接应用于 OpenCV 中的 OpenCL 模块。
示例如下,如果iDevicesNum结果非0,说明安装配置正确。
#include "stdafx.h" #include <opencv2/opencv.hpp> #include <opencv2/gpu/gpu.hpp> using namespace cv; using namespace cv::gpu; int_tmain(int argc, _TCHAR* argv[]) { int iDevicesNum = getCudaEnabledDeviceCount(); cout<<iDevicesNum<<endl; return 0; }
参考文献:
1、 http://opencv.willowgarage.com/wiki/OpenCV_GPU
2、 http://docs.opencv.org/modules/gpu/doc/introduction.html
3、 http://wenku.baidu.com/view/81e29c6f011ca300a6c390dd.html
4、 http://blog.cuvilib.com/2011/03/22/how-to-build-opencv-2-2-with-gpu-cuda-on-windows-7/
5、 http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-microsoft-windows/index.html