0. 原材料
libSGM开源库是一个使用CUDA对半全局匹配算法SGM的加速实现版本。
- 英伟达显卡(算力 >= 3.5)
- cuda环境(我的版本是cuda 10.0)
- OpenCV(版本 >= 3.0)
- Cmake(版本>=3.1)
1. 源码下载和编译
1.0 代码clone
开源库地址:
https://github.com/fixstars/libSGM
先把代码clone到本地来。
1.1 新建文件夹
建立build目录和install目录。
1.2 配置cmake
我在windows环境下,使用的cmake-gui,版本是3.11.3。
选择好最上边的源码路径和build路径。
然后点击Configure
按钮,根据自己情况配置,我选择的vs2017 x64。
然后开始加载cmake相关的配置,加载完成如下:
修改一下CMAKE_INSTALL_PREFIX
为刚刚建立的install路径。
然后再点击Configure
按钮,生成项目。
然后使用vs打开该工程,我选择了Release x64
的方案配置。
- 注意,用管理员权限打开vs,否则后边可能会出问题。
右键ALL_BUILD
,选择生成
,等待生成结束。
然后右键INSTALL
,选择仅用于项目
- 仅生成INSTALL
。
生成install结束后,install文件夹内容如下:
2. 调用
源码中附带了几个例程,可以按照作者的方法直接编译运行。
也可以在vs中自己配置环境(cuda和opencv),也可以。
3. 结果
随便搞了几个参数去跑,速度还是挺快的,毕竟上了gpu了。但是测试时发现,如果图片尺寸太大的话,会out of memory
错误。所以我直接把图片resize了。