Vizの事前準備
terminalでsudo apt-get -y install libvtk5-dev
を実行し、再度OpenCVをビルドする
これでサンプルがコンパイルできるようになると思った。
罠2
通常g++ -o $1 $1.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv`
を記載したshell scriptを呼び出してコンパイルしているが、今回
trajectory_reconstruccion.cppをコンパイルすると
#include <opencv2/sfm.hpp>
で呼び出す、sfm.hppの依存headerで
#include <Eigen/Core>
が見つからないとの警告が出る
対処
コンパイル用のスクリプトファイルに
-I/usr/include/eigen3
を追加
罠3
149行の reconstruct でそんな関数はメンバーにいないとのエラーがreconstruct は、 opencv_contrib-3.1.0/modules/sfm/include/opencv2/sfm/reconstruct.hpp に確かに定義されている。
散々悩んでopencv2/sfm.hppを見たところ
#if CERES_FOUND
#include <opencv2/sfm/reconstruct.hpp>
#include <opencv2/sfm/simple_pipeline.hpp>
#endif
と定義されており、フラグを設定していないと読み込まれない
対処
コンパイル用のスクリプトファイルに
-DCERES_FOUND=1
を追加
これでようやく trajectory_reconstruccion.cpp のコンパイルができるようになった。
最終スクリプト
g++ -o $1 $1.cpp `pkg-config --libs opencv` -I/usr/local/include -I/usr/include/eigen3 -DCERES_FOUND=1
サンプルの実行
terminlで以下を実行すると./trajectory_reconstruccion desktop_tracks.txt 1914 640 360
----------------------------
Reconstruction:
============================
Estimated 3D points: 26
Estimated cameras: 239
Refined intrinsics:
[1018.232765405989, 0, 601.2589725784402;
0, 1018.232765405989, 360.3785586127441;
0, 0, 1]
3D Visualization:
============================
Recovering points ... [DONE]
Recovering cameras ... [DONE]
Rendering Trajectory ...
Press:
's' to switch the camera pov
'q' to close the windows
とメッセージが表示され下記画像が表示される
0 件のコメント:
コメントを投稿