1. 程式人生 > >libviso2在windows平臺下的使用

libviso2在windows平臺下的使用

this .cpp html ica 應用 sprint 地面 部分 github

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 (http://www.libpng.org/pub/png/libpng.html) libpng下載了1.6.32版本。解壓到解壓放到工程目錄下新建的include文件夾。
  • png++ (http://www.nongnu.org/pngpp/) (png++ is a header only, library, which means you don‘t need to build anything)這裏下載了png++ 0.2.9版本。解壓放到工程目錄下include文件夾。
  • zlib (https://sourceforge.net/projects/libpng/files/zlib/1.2.11/) (libpng需要) 解壓放到工程目錄下include文件夾。

下面對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
技術分享圖片

libviso2在windows平臺下的使用