標籤:解壓 測試 soft printf sprint 選擇 htm 比較 並且
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平台下的使用