Structure From Motion
SfMを勉強しようと思って、この本のChapter 4のソースコードを入手してビルドしようとしてはまったことのメモ。 動作ししてから思い出しながら書いているので抜けがあるかも。
- 作者: Daniel Lelis Baggio,Shervin Emami,David Millan Escriva,Khvedchenia Ievgen,Naureen Mahmood
- 出版社/メーカー: Packt Publishing
- 発売日: 2012/12/03
- メディア: ペーパーバック
- この商品を含むブログ (2件) を見る
テキストに対応したソースコードはここから取得。 MasteringOpenCV/code · GitHub
PCLのビルド(実際にはびるどはしてないけど)
PCLの公式Siteでもall in one packageを用意しているが、 今回使用したVisual Studio 2013用がなかった。 1つ1つコンパイルするの嫌だなぁと思っていたら、VS2013用にall in one packageを作っている方が居たので、 Building Point Cloud Library with Visual Studio 2012/2013/2015 | Summary?Blog
SSBAのビルド
SSBAもビルド。下記を入手し、3rdparty\SSBA-3.0だけビルドして、 Chapter4_StructureFromMotion\3rdparty\SSBA-3.0 としてコピー。 royshil/SfM-Toy-Library · GitHub
SfMのcmake
cmakeで Chapter4_StructureFromMotion のVS2013用ソリューションファイルを作ろうとすると VTK_DIRがないと怒られる。エラーメッセージを見るとPCLのcmakeに書いてあるようなので、 インストールされているフォルダ構成に合わせて下記に修正。 "C:\Program Files (x86)\PCL 1.7.2\cmake\PCLConfig.cmake"
macro(find_VTK) if(PCL_ALL_IN_ONE_INSTALLER AND NOT ANDROID) # set(VTK_DIR "${PCL_ROOT}/3rdParty/VTK/lib/vtk-5.8") set(VTK_DIR "${PCL_ROOT}/3rdParty/VTK/lib/cmake/vtk-6.2")
SfMのビルド
やっと、VS2013用ソリューションファイルができたのでChapter4_StructureFromMotionのビルド。
- SURFを使っているいくつかのファイルでエラーが出るので下記を追加。場所が移動しているらしい。
#include <opencv2/nonfree/gpu.hpp>
↑と合わせて下記も追加。([ExploringSfMExec]->[プロパティ]->[構成プロパティ]->[リンカー]->[入力]->[追加の依存ファイル]) C:\opencv_2.4.11\opencv\build\x86\vc12\lib\opencv_nonfree2411.lib も追加()。
WIN32の手順でファイルを取得するらしいのだが、エラーが出るので下記を追加。 Common.cpp:
#include <windows.h>