win10(x64) + opencv2.4.9 + cuda6.5(x64) + cmake3.0.2编译32位的opencv_gpu

近期在优化老项目的执行速度,考虑到比较耗时的部分是对图像处理的部分,因此考虑利用GPU加速处理。由于历史遗留问题,OpenCV的版本是比较老的2.4.9,同时项目是基于32位编译的,因此需要编译32位的OpenCV(GPU)。这个奇怪的搭配让我找了很多资料,遇到了很多坑,这里将成功的方案记录一下。
配置如下:

名称版本架构
Windows10x64
OpenCV2.4.9-
CUDA6.5x64
Cmake3.0.2x64
TBB44-
VS2010-

同款配置下载(待添加)

1、安装CUDA6.5

一路下一步就可以,安装完成后,检查一下是否安装成功。

nvcc -V

2、配置TBB

bin目录添加环境变量
include目录添加环境变量
↓↓↓–因为要编译32位的因此选择ia32文件夹–↓↓↓
lib/ia32/vc10目录添加环境变量
↑↑↑–因为项目是vs2010因此选择vc10–↑↑↑

3、安装OpenCV

选择合适的路径解压

4、Cmake编译OpenCV(GPU)

4.1配置OpenCV源码目录
4.2配置编译后输出目录
4.3勾选Advanced在这里插入图片描述
4.4点击Configure(重要)
选择Visual Studio 10 2010编译为32位
在这里插入图片描述
4.5配置信息

取消勾选
BUILD_DOCS
BUILD_EXAMPLES
CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE

勾选
WITH_CUBLAS
WITH_CUDA
WITH_OPENGL
WITH_TBB

点击Configure

4.6TBB目录(可能出现)
如果TBB目录还是红色,需要手动添加

名称路径
TBB_LIB_DIR…/lib/ia32/vc10
TBB_STDDEF_PATH…/include/tbb/tbb_stddef.h

点击Configure

4.7当不出现红色项的时候就说明配置没问题了
点击Generate等待完成

5、生成OpenCV

5.1生成前准备
打开‘opencv-2.4.9\modules\gpu\src\nvidia\core\NCV.cu’加上 #include ,否则生成时会有错误

5.2编译 OpenCV.sln
5.2.1生成opencv_core
5.2.2生成opencv_gpu
5.2.3生成ALL_BUILD
5.2.4生成INSTALL

全部完成后就会在上边选择编译后输出文件夹内生成install文件夹,这就是以及被编译好的32位的OpenCV(GPU)

6、项目配置

6.1可执行文件目录:
6.1.1TBB
…/tbb44_20150424oss/bin/ia32/vc10

6.1.2CUDA
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\bin

6.2包含目录:
6.2.1OpenCV(GPU)_include
…/install/include;

6.2.2OpenCV(GPU)_include_opencv
…/install/include/opencv;

6.2.3OpenCV(GPU)_include_opencv2
…/install/include/opencv2;

6.3库目录:
6.3.1OpenCV(GPU)_lib
…/install\x86/vc10/lib

7、测试示例

int num_device = gpu::getCudaEnabledDeviceCount();
if(num_device > 0)
{
	cout<< "GPU可用" << endl;
}
else
{
	cout<< "GPU不可用" << endl;
}

8、与其他版本CUDA兼容性

将项目配置完成后,迁移到装有CUDA10.1的设备上,发现缺少CUDA6.5的dll,直接将少的考过来放在exe文件同目录,竟然能运行!并且在执行过程中成功使用了GPU,意外收获,意外收获!
但是版本不一致会增加运算时间,还是建议使用对应版本!

9、结语

9.1为什么选择CUDA6.5而不是最新版本
CUDA9以后不在兼容OpenCV2.X。
测试过CUDA7.5在生成的时候报错**CMake Error: The following variables are used in this project, but they are set to NOTFOUND.**该问题是因为CUDA提供的某些DLL只有x64的,因此在选择编译x86的时候就报错。
测试过CUDA5/5.5,驱动在Win10上一直安装不上。

9.2为什么是32位
因为历史遗留问题,项目整体调整为64位难度比较大。

参考文章:
OPENCV2.4.9+CUDA6.5+VS2013 64位系统环境搭

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半片青柠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值