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

时间:2017-10-27 12:46:23

标签: c++ opencv cmake ubuntu-17.04 opencv-contrib

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

我正在尝试使用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

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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

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