【三维重建】openMVG单文件拎出来构建

开源软件下载下来之后如何进行改动,方法一就是在原来的工程基础上直接进行修改,使用开源软件自己的cmake方法进行构建。方法二就是将开源软件作为第三方库,将单个文件从工程里面单拎出来进行构建修改。
openmvg单个文件构建的cmake如何编写可以参考如下这个博客:
https://www.cxyzjd.com/article/qq_40084959/117234113

三维重建相关的几个程序是

main_SfMInit_ImageListing.cpp
main_ComputeFeatures.cpp
main_ComputeMatches.cpp
main_IncrementalSfM.cpp
main_GlobalSfM.cpp

cmake构建如下(拿main_SfMInit_ImageListing.cpp 示例):

cmake_minimum_required(VERSION 3.0.0)
project(mvgtest1)
set(CMAKE_CXX_STANDARD 17)

add_executable(main_SfMInit_ImageListing main_SfMInit_ImageListing.cpp)

#OpenMVG,OpenCV,Ceres

find_package(OpenCV REQUIRED)
find_package(OpenMVG REQUIRED)

find_package(Ceres REQUIRED PATHS "${CERES_PATH}/Thirdparty/ceres-solver")
include_directories(${CERES_INCLUDE_DIRS})
set(LIBS ${Ceres_LIBS_DIR}/libceres.a umfpack cxsparse glog gflags gomp
        ccolamd btf klu cholmod lapack blas camd amd pthread)
include_directories(${OPENMVG_INCLUDE_DIRS})

target_link_libraries(main_SfMInit_ImageListing
        PRIVATE
        OpenMVG::openMVG_sfm
        OpenMVG::openMVG_matching
        OpenMVG::openMVG_camera
        OpenMVG::openMVG_exif
        OpenMVG::openMVG_features
        OpenMVG::openMVG_geodesy
        OpenMVG::openMVG_geometry
        OpenMVG::openMVG_graph
        OpenMVG::openMVG_image
        OpenMVG::openMVG_linearProgramming
        OpenMVG::openMVG_matching
        OpenMVG::openMVG_matching_image_collection
        OpenMVG::openMVG_multiview
        OpenMVG::openMVG_numeric
        OpenMVG::openMVG_robust_estimation
        OpenMVG::openMVG_sfm
        OpenMVG::openMVG_system
        ${OpenCV_LIBS}
        )
FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
    message("OPENMP FOUND")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
posted @ 2022-09-08 10:50  乞力马扎罗山的雪  阅读(179)  评论(0)    收藏  举报