libviso2在windows平台下的使用

LIBVISO2简介

libviso2 (Library for Visual Odometry 2) 是一个快速跨平台C++库用于计算移动单目/双目相机的6DoF运动。

双目版本基于最小化稀疏特征匹配的重投影误差,比较通用(无需运动模型或安装限制,除了输入图像需为校正后(rectified)的并且标定参数已知)。单目版本还是比较实验性的,使用了8点法估计基础矩阵,为估计绝对尺度,进一步假设相机在地面上方一个已知固定高度移动。

libviso2下载地址:http://www.cvlibs.net/software/libviso/

Windows visual studio 使用libviso2

为了能在windows visual studio下编译运行libviso2,需要进行一定的配置。首先在VS新建空白控制台应用程序。这里我们选择使用x64平台,在工程目录下新建include文件夹,用来存放必要的支持文件。现在下载这些必要的库。

必要支持文件下载与build

在libviso2文件夹的readme中指出:需要如下的png库(libpng)和该库的c++封装(png++)。

下面对libpng进行build:

  • 文本编辑器打开include\lpng1632\projects\vstudio\zlib.props,修改其中的ZLib文件夹名为下载解压的zlib文件名: <ZLibSrcDir>..\..\..\..\zlib-1.2.11</ZLibSrcDir>
  • 打开include\lpng1632\projects\vstudio\vstudio.sln. 这里使用了x64平台(与demo测试工程应保持一致)。将解决方案中的libpng工程设为起始工程,build (debug下或release下, 这里用的debug下). 成功后,在include\lpng1632\projects\vstudio\x64\Debug 中发现生成了 libpng16.lib, zlib.lib以及libpng16.dll

VS2015 配置

  • 包含libviso2->src的头文件和源文件
  • 在VC++ Directories->Include Directories 中添加 工程根目录\include 目录
  • 在VC++ Directories->Include Directories 中添加 工程根目录\include\lpng1632 目录
  • 在VC++ Directories->Library Directories 中添加 工程根目录\include\lpng1632\projects\vstudio\x64\Debug 目录
  • 在Linker->Input->Additional Dependencies中添加 libpng16.libzlib.lib
  • 将libpng16.dll放到工程目录下。

一些错误处理

  • 比如 error C4996: 'sprintf': This function or variable may be unsafe. 处理:在demo.cpp 和 matrix.cpp 文件起始位置添加#define _CRT_SECURE_NO_WARNINGS.
  • 在error.hpp中错误: identifier "strerror_r" is undefined. 处理:在error.hpp起始部分将 #ifdef __STDC_LIB_EXT1__ 修改为 #if defined(__STDC_LIB_EXT1__) || defined(_WIN32)

Windows版使用下载

https://github.com/zhenboliu/libviso2_windows

运行显示

运行demo.cpp

posted on 2018-04-08 19:58  lzbqqq  阅读(1284)  评论(0编辑  收藏  举报

导航