2017-06-12 127 views
0

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

错误 - C编译器识别为GNU 5.4.0 - 的CXX编译器识别为GNU 5.4.0 - 检查工作的C编译器:在/ usr/bin/cc这个 - 检查工作的C编译器:在/ usr/bin/cc这个 - 工程 - 检测C编译器ABI资讯 - 检测C编译器ABI资讯 - 做 - 检测ç编译功能 - 检测C编译特性 - 完成 - 检查工作CXX编译器:/ usr/bin/C++ - 检查工作CXX编译器:/ usr /斌/ C++ - 工程 - 检测CXX编译器ABI资讯 - 检测CXX编译器ABI资讯 - 做 - 检测CXX编译功能 - 检测CXX编译功能 - 做 - 发现本征的安装版本:/usr/lib目录/ cmake的/ eigen3 - 找到所需的谷神星的依赖:征版92年2月3日在/ usr/include中/ eigen3 - 找到所需的谷神星的依赖:考勤记录 - 执行测试GFLAGS_IN_GOOGLE_NAMESPACE - 执行测试GFLAGS_IN_GOOGLE_NAMESPACE - 成功 - 找到需要的Ceres依赖:gflags - 找到Ceres版本:1.13.0安装在:/ usr/local与组件:[LAPACK,SuiteSparse,SparseLinearAlgebraLibrary,CXSparse,SchurSpec ializations,OpenMP的] - 检查SFM DEPS ... TRUE - 模块opencv_sfm禁用,因为以下依赖性都没有发现:本征 CMake的错误在的CMakeLists.txt:35(ocv_module_disable): 未知的CMake命令 “ocv_module_disable”。 CMakeLists.txt中的CMake Warning(dev): 不存在cmake_minimum_required命令。应该在文件的顶部添加一行代码,如 cmake_minimum_required(VERSION 3.5) 。如果您希望为此项目支持较早的CMake版本,则指定的版本可能会较低 。有关更多 信息,请运行“cmake --help-policy CMP0000”。 此警告适用于项目开发人员。使用-Wno-dev来抑制它。 - 配置不完整,发生错误!

PS:我从出发前的SFM文档页面中提到的库的所有必需下载去了。

回答

0

我建议你安装所需的依赖像征,谷歌日志,谷歌的标志,和谷神星与

-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules 

下载对应的版本opencv_contrib为您的OpenCV,并建立它,并使用下面的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