opencv与GPU混合编程之重新编译gpu库

来源:互联网 发布:金和软件 编辑:程序博客网 时间:2024/06/05 11:12

这是我第二次发博客,心里有点小激动。。。

言归正传,有缘接触到GPU,并学习opencv与GPU混合编程,将其应用项目中去。在网上看了不少资料,发现现在参与opencv与GPU混合编程大牛不少,但是关于这方面的资料还是很少,建议有学习opencv与GPU混合编程的freshman可以去http://www.cnblogs.com/dwdxdy/p/3528711.html看看混合编程的参考示例。

以下说到的重新编译gpu库是因为我们使用第三种方法编程时需要用到opencv里面的gpu模块,如果不重新编译,即调用getCudaEnabledDeviceCount()会返回0值,返回0值是什么意思呢,就是说你调用设备的时候,没有设备可以调,这就相当于你无法用gpu里面的cuda,那样无法进行gpu加速啦。

下面我们说说编译gpu库,csdn有很多前辈已经有很详细的教程,具体可以参考 

http://blog.csdn.net/fengbingchun/article/details/9831837 

http://blog.csdn.net/quanquanyu/article/details/8917765

我来分享下我重新编译过程出现的问题及总结:

1.首先需要知道vs的版本,比如我用到的是vs2008专业版的,可以运行64平台程序(只需安装时添加x64编译器),你要跑32位程序,需要选择


这样你得到的lib,及bin文件可以在32位平台用了,如果你要在64位平台运行程序,需要改成Visual studio 9 2008Win64

注意我是用的vs2008的。有些人不确定自己到底用的是哪个版本,可以打开vs空项目,选择帮助,关于Microsoft Visual Studio查看。

2.尽量用比较新的opencv版本。比方说我用opencv2.3.1时发现缺少文件stream_accessor.hpp。

3.tbb、python2.7、Qt安装不是必须的步骤,如果你只是用gpu模块,可以不用安装。

4.Cmake设置时可以不用设置。

5.参考http://blog.csdn.net/wangyaninglm/article/details/39997113可以减少opencv.sln运行时间,首先查看自己电脑的cuda版本,链接https://developer.nvidia.com/cuda-gpus,然后修改CUDA_ARCH_BIN,清空CUDA_ARCH_PTX值。

6.编译opencv库时有可能出现问题,时刻记住代码没有问题,多找几个opencv版本试试。

7.如何使用编译好的lib,bin。可以参考opencv的默认存放路径,主要使用的是bin文件夹(包含dll文件)、lib文件夹(包括库文件)、include文件夹(主要是头文件)。如下

D:\opencv2.4.9\build文件包括


x64文件夹和x86文件夹包含


include文件夹包含


最后配置的时候就可以按照这个文件摆放路径配置。

最后:opencv和gpu混合编译正式开始微笑


0 0
原创粉丝点击