【问题标题】:Visual Studio C++ cannot find OpenCV-Contrib modulesVisual Studio C++ 找不到 OpenCV-Contrib 模块
【发布时间】:2020-05-01 07:12:46
【问题描述】:

我正在尝试使用 OpenCV multi-target tracker,但不能包含头文件。通过在 CMake GUIOPENCV_EXTRA_MODULES_PATH 中提供opencv_contrib-4.2.0\modules 的路径,我已经用额外的模块构建了 OpenCV。但是,我不能在项目中包含跟踪器:


代码:

#include <opencv2/tracking.hpp>

错误:

无法打开源文件“opencv2/tracking.hpp”


代码:

#include "samples_utility.hpp"

错误:

无法打开包含文件:'samples_utility.hpp':没有这样的文件或目录


如何将OpenCV-contrib的所有模块添加到默认的OpenCV目录中?

【问题讨论】:

  • 是的,tracking.hppopencv4.2.0\include\opencv2 中,samples_utility.hppopencv4.2.0\samples\tracking
  • 是编译器唯一找不到的头文件吗?
  • 不,它在 OpenCV-contrib 中找不到任何头文件
  • 恐怕非 contrib 模块没有正确构建(检查 lib 和 dll 文件)。 Opencv.Sln 是否构建了所有库都没有任何错误?
  • 是的 Opencv.Sln 构建了所有库,没有任何错误(所有构建成功)。是否需要使用 **contrib ** 模块进行构建,或者只需将它们添加到 Visual Studio 中的包含目录就足够了?

标签: c++ visual-studio opencv cmake include


【解决方案1】:

您不必添加所有模块。只有您需要的模块,在这种情况下是跟踪模块。您需要将相应的文件夹添加到包含目录,并且代码应该可以正确编译。(您的文件夹可能在不同的位置,但相对路径应该相同)

{location_of_opencv_contrib}\modules\tracking\include

{location_of_opencv_contrib}\modules\tracking\samples

对于visual studio,你可以将上面的文件夹路径添加到Project Properties-> VC++ Directories -> Include Directories

如果您使用 gcc 构建,请添加 -I 选项,后跟提到的文件夹的目录。

【讨论】:

  • 我按照你说的做了,但现在得到其他错误都说C3646 'CV_OVERRIDE': unknown override specifierOpenCV-contrib 的版本与OpenCV* 相同。两者都是 4.2
  • 那么你需要使用你的opencv-contrib版本。由于主opencv和opencv-contrib之间的版本不匹配而发生错误
猜你喜欢
  • 1970-01-01
  • 2015-07-04
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
相关资源
最近更新 更多