最近在OpenCV方面有一些需求,需要使用GPU来进行一些图像处理。首先的想法当然就是Python解决了,但是在国内外逛了一整圈之后,发现并没有什么收获。从某度获得的信息模棱两可,一旦同时提到OpenCV和GPU,基本上就是教怎么配环境的;而StackOverflow上很直接的给出了答复:不能

但是在挑战面前,程序员是不会轻言放弃的(PM:真香)。于是打算动手直接撸C++代码,再给Python调用。说完就开始动手,给VS配置环境。于是第一个问题来了——考虑到电脑空间问题,目前装的是VS2013,而官网上给出的预编译包支持的VS版本是2015和2017。虽然说理论上问题不大,但还是没有这么试,毕竟之前一个2015版的asmhighlighter插件就把我折腾的够呛,最后还没成功。

在网上看了一篇博客之后,受到启发,决定自行编译。在官网上取到安装包,去sourceforge上拿一个cmake-gui,然后就开始了第一次编译。

OpenCV 4及以上的版本就不要考虑了。这些版本使用了C++11语法,而在VC12开发的时代并没有完全支持C++11规范 ->通过编译报错可以看出,诸如NORETURN一类的语法会在VS2013报错,且官方也对于各版本的C++11支持情况做了说明

===========下面是不详细的步骤===========

Where is the source code: 这里填解压后源码的根目录 Where to build the binaries: 这里放的可能是最终的程序,也可能是类似于“安装程序”一类的临时文件。若是后者的话,安装目录还需要在cmake里手动指定修改。 然后Configure,选择VS2013(vc12)对应的64位选项。把相关项的信息修改,该勾上的勾上,该填写的目录填写一下,再Configure。新出现的条目是红色的。重复该步骤,直至没有新的红色条目出现为止。比较重要的是记得把WITH_CUDA勾上。 然后Generate生成给VS编译用的项目结构,再Open Project,在VS中编译获得成品即可。

在编译时,去掉了python模块的编译,加上了OpenBLAS库和cuda选项,然后右键INSTALL生成。

该部分可以分为两个步骤:编译和安装(make && make install) 即可以通过等价的以下方式,共两步实现,1)右键BUILD_ALL生成;2)右键INSTALL仅生成该项目

目前编译器情绪稳定。

VS中编译时,涉及到cuda部分的编译速度好像特别慢。别人说要编译六个小时我还不信来着。 最终统计:编译时间约为3小时。 编译完成,五六千个警告。没有错误,问题不大

后续是小型阿伟去世现场,参见这里

标签: none

添加新评论