環境:Win10, OpenCV4.2,VS2017, CMake 3.9.1
參考鏈接:https://blog.csdn.net/fanhao900322/article/details/78787712
https://blog.csdn.net/wzheng92/article/details/79504709
① GFlags編譯,源碼鏈接:https://github.com/gflags/gflags/tree/v2.2.2
ALL_Build之後,Install僅用於項目生成,生成文件目錄如下:
C:/Program Files/gflags/lib/gflags_static.lib
C:/Program Files/gflags/lib/gflags_nothreads_static.lib
C:/Program Files/gflags/include/gflags/gflags.h
C:/Program Files/gflags/include/gflags/gflags_declare.h
C:/Program Files/gflags/include/gflags/gflags_completions.h
C:/Program Files/gflags/include/gflags/gflags_gflags.h
C:/Program Files/gflags/lib/cmake/gflags/gflags-config.cmake
C:/Program Files/gflags/lib/cmake/gflags/gflags-config-version.cmake
C:/Program Files/gflags/lib/cmake/gflags/gflags-targets.cmake
C:/Program Files/gflags/lib/cmake/gflags/gflags-targets-release.cmake
C:/Program Files/gflags/lib/cmake/gflags/gflags-nonamespace-targets.cmake
C:/Program Files/gflags/lib/cmake/gflags/gflags-nonamespace-targets-release.cmake
② glog編譯:源碼鏈接:https://github.com/google/glog/tree/v0.4.0
需要依賴上一步生成的GFlags Install目錄,然後同樣VS2017生成,Install生成文件目錄:
C:/Program Files/glog/lib/glog.lib
C:/Program Files/glog/include/glog/logging.h
C:/Program Files/glog/include/glog/raw_logging.h
C:/Program Files/glog/include/glog/stl_logging.h
C:/Program Files/glog/include/glog/vlog_is_on.h
C:/Program Files/glog/include/glog/log_severity.h
C:/Program Files/glog/lib/cmake/glog/glog-config.cmake
C:/Program Files/glog/lib/cmake/glog/glog-config-version.cmake
C:/Program Files/glog/lib/cmake/glog/glog-targets.cmake
C:/Program Files/glog/lib/cmake/glog/glog-targets-release.cmake
③ Eigen3.3.7編譯,源碼鏈接:https://gitlab.com/libeigen/eigen/-/releases
ALL_Build之後,Install僅用於項目生成,生成文件目錄C:/Program Files/Eigen3/include/eigen3...
④ Suitesparse編譯,源碼鏈接:https://github.com/jlblancoc/suitesparse-metis-for-windows/tree/v1.5.0
⑤ Ceres-solver編譯,鏈接https://ceres-solver.googlesource.com/ceres-solver/+/refs/tags/1.13.0
點擊【tgz】下載,下載後需要解壓兩層才能獲得Ceres源代碼
⑥ OpenCV編譯,需要配置前面幾個路徑,可以參考以下三個鏈接,相信你可以搞定了
https://blog.csdn.net/wzheng92/article/details/79504709
https://www.jianshu.com/p/89a5705f0941
https://blog.csdn.net/fanhao900322/article/details/78787712
使用的時候注意添加opencv_sfm420.lib
還可能會遇到一個問題,就是提示reconstruct函數無法識別的標識符,解決方法在#include <opencv2/sfm.hpp>前
添加#define CERES_FOUND 1
接下來運行一個實例,代碼見官方文檔https://docs.opencv.org/master/d4/d18/tutorial_sfm_scene_reconstruction.html
注意運行時將前面生成的dll都複製過來或者加到環境變量(推薦)
運行生成的點雲感覺很稀疏,和官方結果不一樣,需要再研究研究問題在哪