当我尝试在SFM模块中执行示例代码时出现错误。最初,我的contrib目录中没有SFM。所以我下载了最新的contrib并在我的contrib目录中粘贴了sfm文件夹。我使用了sfm模块中的CMakeLists.txt。 然后我尝试使用scene_reconstruction.cpp和我从sfm模块获取的CMakeLists.txt在我自己的目录中构建它。以下是我得到的错误
- C编译器标识是GNU 5.4.0 - CXX编译器标识是GNU 5.4.0 - 检查工作的C编译器:/ usr / bin / cc - 检查工作C编译器:/ usr / bin / cc - 工作 - 检测C编译器ABI信息 - 检测C编译器ABI信息 - 完成 - 检测C编译功能 - 检测C编译功能 - 完成 - 检查CXX编译器是否正常工作:/ usr / bin / c ++ - 检查工作CXX编译器:/ usr / bin / c ++ - 有效 - 检测CXX编译器ABI信息 - 检测CXX编译器ABI信息 - 完成 - 检测CXX编译功能 - 检测CXX编译功能 - 完成 - 找到安装版本的Eigen:/ usr / lib / cmake / eigen3 - 找到所需的Ceres依赖性:/ usr / include / eigen3中的Eigen版本3.2.92 - 找到所需的Ceres依赖: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 ...是的 - 模块opencv_sfm被禁用,因为找不到以下依赖项:Eigen CMakeLists.txt处的CMake错误:35(ocv_module_disable): 未知的CMake命令“ocv_module_disable”。 CMakeLists.txt中的CMake警告(dev): 没有cmake_minimum_required命令。一行代码如 cmake_minimum_required(版本3.5) 应该添加在文件的顶部。指定的版本可能更低 如果您希望为此项目支持较旧的CMake版本。更多 信息运行“cmake --help-policy CMP0000”。 此警告适用于项目开发人员。使用-Wno-dev来抑制它。 - 配置不完整,发生错误!
PS:在开始之前,我完成了SFM文档页面中提到的所有必需的库下载。
答案 0 :(得分:0)
我建议您安装所需的依赖项,如Eigen,Google日志,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
和