libviso2在windows平臺下的使用
阿新 • • 發佈:2018-04-08
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.lib
和zlib.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平臺下的使用