致命错误:opencv2/sfm.hpp:没有这样的文件或目录#include <opencv2/sfm.hpp>

Posted

技术标签:

【中文标题】致命错误:opencv2/sfm.hpp:没有这样的文件或目录#include <opencv2/sfm.hpp>【英文标题】:Fatal error: opencv2/sfm.hpp: no such file or directory #include <opencv2/sfm.hpp> 【发布时间】:2017-10-27 12:46:22 【问题描述】:

我是 opencv 库的初学者。我已经在 Ubuntu 17.04 上安装了它,安装过程中的一切都很完美,完全没有错误。 我已经安装了 Opencv-master,构建了它,然后我下载了 opencv_contrib-master 并将其添加到构建文件夹中。

我正在尝试使用 SFM(运动结构)构建 scene_reconstruction。我已经安装了所有依赖项:

    sudo apt-get install libeigen3-dev libgflags-dev libgoogle-glog-dev

然后我安装了 Ceres Solver:

git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
mkdir build && cd build
cmake ..
make -j4
make test
sudo make install

一切正常,完全没有错误。 我尝试按照此处 (Tutorial Scene Reconstruction) 的官方文档编写 example_sfm_scene_reconstruction.cpp。

cmake . 没有任何错误,但是当我尝试执行 make 时,我遇到了这个错误: screenshot

英文版是fatal error: opencv2/sfm.hpp: no such file or directory #include

也许路径不正确或者我不知道该怎么想。

谢谢!

【问题讨论】:

【参考方案1】:

您必须与 Contrib 版本一起构建 OpenCV 版本。要使用 Contrib Repository 构建 OpenCV,您必须向 cmake 添加一个参数:

cd <opencv_build_directory>
cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
make -j5

我建议获得一个稳定的 opencv 版本(例如 3.3.1),而不是检查 master 分支。确保 contrib 是相同的版本。如果您完全不确定,请按照此处的说明进行操作: https://github.com/opencv/opencv_contrib

另外,在编译 opencv 之前,您将需要 sfm 模块的依赖项。

【讨论】:

我做到了:cmake -DOPENCV_EXTRA_MODULES_PATH=opencv_contrib-master/modules .. 然后make -j5,但是错误还是一样。我有 sfm 的所有依赖项。也许是我的 .cpp 错误的路径?我已经安装了 opencv 3.3.1。

以上是关于致命错误:opencv2/sfm.hpp:没有这样的文件或目录#include <opencv2/sfm.hpp>的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:glib.h:使用 vscode 和 mingw 时没有这样的文件或目录

致命错误:sdl.h:没有这样的文件或目录

致命错误:Python.h:没有这样的文件或目录

致命错误:string.h:没有这样的文件或目录

致命错误 C1083:无法打开包含文件:'boost/regex.hpp':没有这样的文件或目录

致命错误:modbus.h:没有这样的文件或目录