0

当我尝试在 SFM 模块中执行示例代码时出现错误。最初 SFM 不存在于我的 contrib 目录中。所以我下载了最新的 contrib 并将 sfm 文件夹粘贴到我的 contrib 目录中。我使用了 sfm 模块中的 CMakeLists.txt。然后我尝试使用 scene_reconstruction.cpp 和从 sfm 模块中获取的 CMakeLists.txt 在我自己的目录中构建它。以下是我得到的错误

glog -- 执行测试 GFLAGS_IN_GOOGLE_NAMESPACE -- 执行测试 GFLAGS_IN_GOOGLE_NAMESPACE - 成功 -- 找到所需的 Ceres 依赖项:gflags -- 找到 Ceres 版本:1.13.0 安装在:/usr/local 中,组件:[LAPACK、SuiteSparse、SparseLinearAlgebraLibrary、CXSparse、SchurSpecializations , OpenMP] -- 检查 SFM deps... TRUE -- 模块 opencv_sfm 已禁用,因为未找到以下依赖项:CMakeLists.txt:35 (ocv_module_disable) 处的 Eigen CMake 错误:未知 CMake 命令“ocv_module_disable”。CMakeLists.txt 中的 CMake 警告 (dev):不存在 cmake_minimum_required 命令。应在文件顶部添加一行代码,例如 cmake_minimum_required(VERSION 3.5)。如果您希望为此项目支持较旧的 CMake 版本,则指定的版本可能会更低。有关更多信息,请运行“cmake --help-policy CMP0000”。此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。-- 配置不完整,出现错误!

PS:在开始之前,我浏览了 SFM 文档页面中提到的所有必需的库下载。

4

1 回答 1

0

我建议您安装所需的依赖项,例如 Eigen、Google log、Google Flags 和 Ceres,并为您的 opencv 下载相应的 opencv_contrib 版本并使用

-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules

并使用以下 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 2.8)
project( main )
find_package( OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( main main.cpp )
target_link_libraries( main ${OpenCV_LIBS} )

假设你有 main.cpp 文件,如果你有正确的安装,它应该可以工作。

欲了解更多信息,请访问:

https://github.com/opencv/opencv_contrib/tree/master/modules/sfm

https://github.com/opencv/opencv_contrib/issues/476

于 2018-03-01T19:10:57.840 回答