Win64平台CUDA6.5+VS2010+opencv2.4.8配置
来源:互联网 发布:ubuntu华屏 编辑:程序博客网 时间:2024/05/19 03:43
搞了3天,终于将CUDA+opencv+VS2010的环境搞好了。真是非常坎坷,现将配置步骤记录如下。
笔记本上的显卡为NVIDIA GeForce GTX850M,计算能力为5.0(查询显卡计算能力:https://developer.nvidia.com/cuda-gpus)
开始使用的是CUDA7.0配置,发现cmake后生成的VS解决方案编译后无法生成相应的lib和dll文件,报好多错误,这是显然不可以的。我猜想可能的原因是由于CUDA7.0对opencv要求的版本较高。我的opencv2.4.8跟不上了。
然后换CUDA6.0,这次cmake后生成的VS解决方案编译后可以生成相关的lib和dll文件。也可以正常的在GPU上进行计算,但是,CPU像GPU传输数据的时候特别慢,且最后使用opencv的显示函数如imshow和cvImageshow都无法正常使用,报错如下:
最后使用CUDA6.5版本进行配置,成功。下面为具体步骤:
1.在官网下载CUDA6.5版本,安装。安装时默认路径最好不要修改。安装完成后,会在系统环境变量中自动添加CUDA Toolkit的环境变量。CUDA6.5中集成了配套的显卡驱动,CUDA Toolkit,CUDA samples,如果之前有安装显卡驱动,不必卸载,安装CUDA6.5时会自动替换驱动;
2.将opencv2.4.8下载解压。我的路径为D:\opencv2.4.8;
3.下载Intel TBB4.3,安装,并将TBB4.3的bin目录添加到环境变量中,我的为D:\tbb43_20150316oss_win\tbb43_20150316oss\bin
4.下载cmake3.1.3安装。在cmake中在where is source code中选择编译的源文件路径:在where to build the binaries中选择编译后的存储文件夹,VS2010是我自己建的
点击configure,之后会出现平台选择,我的是选择Visual Studio 2010 win64,点击finish
5.出现的一片红色中,勾选BUILD_EXAMPLES,WITH_CUDA,WITH_TBB,WITH_CUBLAS,WITH_OPENGL,为了加快编译速度,在CUDA_ARCH_BIN修改为3.0 3.5 5.0(该选项是根据GPU计算能力来选择的,我的计算能力为5.0),如果不修改的话,默认要编译好多个版本。CUDA_ARCH_PTX修改为5.0(确定虚拟的PTX版本)。
6.再次点击configure,出现TBB路径未找到的问题,(红色标出),点击确定TBB的路径,我的为D:\tbb43_20150316oss_win\tbb43_20150316oss\include,再次点击configure,出现的红色两条要求配置TBB的lib路径和一个头文件的路径,默认已经找到,再次点击configure,若没有红色出现,且信息框中出现使用CUDA,TBB等信息后,再点击Generate,会在目标路径中生成OpenCV.sln文件,点击打开该文件
7.确定VS2010的状态为Debug x64,在视图--->属性管理器中找到ALL_BUILD,在Microsft.Cpp.x64.user中双击,选择VC++路径,
在可执行文件目录中,将
TBB的bin路径:D:\tbb43_20150316oss_win\tbb43_20150316oss\bin\intel64\vc10
CUDA的bin路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\bin添加
在包含目录中,将
TBB包含目录:D:\tbb43_20150316oss_win\tbb43_20150316oss\include
CUDA包含目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include添加
在库目录中,将
TBB的库目录:D:\tbb43_20150316oss_win\tbb43_20150316oss\lib\intel64\vc10
CUDA的库目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\lib\x64添加
配置好后,切回解决方案资源管理器中,在解决方案‘OpenCV’中,右击,重新生成解决方案,接下来开始了漫长的等待过程。在编译gpu模块时非常的慢。整个过程耗时要几个小时
等编译完成后,在CMakeTargets文件夹下的INSTALL中,右击,选择生成选项,注意不要选错了!又是一个漫长的等待过程。这个过程完成后,就完成了debug模式下的lib和dll文件的生成。会在install文件夹下的x64文件夹中:D:\opencv2.4.8\VS2010\install\x64\vc10
这时候可以先不急着编译release模式,你可以先验证一下debug模式下的编译是否正确。
将自己编译生成的dll文件的目录添加到环境变量中:D:\opencv2.4.8\VS2010\install\x64\vc10
之后,新建一个VS2010项目,在该项目中,将自己编译好的opencv的lib文件配置添加进去,
在debug x64模式下,VC++目录中配置包含目录:
D:\opencv2.4.8\VS2010\install\x64\vc10
D:\opencv2.4.8\VS2010\install\include\opencv
D:\opencv2.4.8\VS2010\install\include\opencv2
在库目录中添加:
D:\opencv2.4.8\VS2010\install\x64\vc10\lib
编写源文件,运行。测试程序如下:
#include <iostream>#include "opencv2/opencv.hpp"#include "opencv2/gpu/gpu.hpp"int main (int argc, char* argv[]){try{cv::Mat src_host = cv::imread("C:\\Users\\Public\\Pictures\\Sample Pictures\\Desert.jpg");cv::gpu::GpuMat dst, src;cv::Mat result_host;src.upload(src_host);cv::gpu::cvtColor(src,dst,CV_BGR2GRAY);cv::gpu::threshold(dst, dst, 128.0, 255.0, CV_THRESH_BINARY);dst.download(result_host);//cv::Mat result_host = dst;cv::imshow("Result", result_host);cv::waitKey();}catch(const cv::Exception& ex){std::cout << "Error: " << ex.what() << std::endl;}//cv::imshow("result",src_host);//cv::waitKey();return 0;system("pause");}
运行后结果:
说明debug模式下配置正确,接下来可以配置release模式,方法同上,注意将平台切换为Release x64即可。
需要注意的是,在编译过程总,如果出现关于宏的对话框,选择cancle,其他的对话框点击yes,要求重新加载的忽略
- Win64平台CUDA6.5+VS2010+opencv2.4.8配置
- win7+cuda6.5+opencv2.4.10+vs2010,64位机, 配置
- Opencv2.4.3 在Win64下VS2010配置
- opencv2.4.9+vs2010+win64下的配置
- CUDA6.5+VS2010+OpenCV2.4.9的环境搭建过程
- vs2010+opencv2.4.8配置
- vs2010+opencv2.4.8配置 .
- Opencv2.4.8在 VS2010平台上安装配置图解
- ubuntu14.04+cuda6.5+opencv2.4.9+cuda-convnet2配置
- Ubuntu14.04+CUDA6.5+OpenCV2.4+Caffee配置
- VS2013+opencv2.4.9+cuda6.5+matlabr2014a+配置caffe
- Ubuntu14.04+cuda6.5+opencv2.4.9+caffe配置记录
- cuda6.5 vs2010
- CUDA6.5-VS2010安装
- 【配置】vs13+opencv2.4.9+cuda6.5+64位win7编译配置
- TK1配置cuda6.5
- OpenCV2.4.3在VS2008和VS2010平台上安装配置
- linux(ubuntu14.04)+GPU+cuda6.5+caffe+openCV2.4.9+matlab2014a+python的新手配置
- 我的第一次
- POJ 3292 Semi-prime H-numbers (变形埃氏筛法)
- 临时存放的东东
- Flex 通过反射清空form表单中的内容
- LeetCode Add Binary
- Win64平台CUDA6.5+VS2010+opencv2.4.8配置
- NetworkComms V3 上传文件探讨
- Merge Two Sorted Lists(LeetCode)
- div+css学习笔记(十天学会div+css)
- 控制器的生命周期
- Android Please ensure that adb is correctly located at问题解决
- Python中的打开文件对话框(转)
- 第三周项目一(2)
- ios 技术境地