尝试使用contrib模块构建opencv时出现以下错误

/opencv/opencv_contrib/modules/tracking/include/opencv2/tracking/tracker.hpp:577:11: error: ‘AlgorithmInfo’ does not name a type

该代码是最新的,并且刚刚被提取。
在将向前声明class AlgorithmInfo;添加到文件tracker.hpp后,该特定错误已消失,但我在其他文件中遇到了其他“AlgorithmInfo”未命名类型”错误。可能没有以某种方式包含AlgorithmInfo。有任何想法吗?

调查:
  • grepping AlgorithmInfo之后,我发现代码库中没有对AlgorithmInfo的定义。
  • 与以前的代码版本相比,我发现在opencv2 / core.hpp第3006行定义了AlgorithmInfo。但是在最新代码中,根本没有!
  • 最佳答案

    这不是一个永久性的解决方案,但我遇到了同样的问题,这就是我如何继续进行该项目直到有人找到更好的方法的方法。

    我看了乌特卡什发布的链接How do I use SIFT in OpenCV 3.0 with c++?

    总而言之,我必须获取opencv_contrib存储库并重新制作opencv。

    这样做之后,我仍然遇到相同的错误,并最终意识到
    你必须包括

    #include "opencv2/xfeatures2d.hpp"
    #include "opencv2/features2d/features2d.hpp"
    

    但是除非您也删除/注释掉,否则仍然会得到相同
    //#include "opencv2/nonfree/features2d.hpp"
    //#include "opencv2/nonfree/nonfree.hpp"
    

    无论如何,这是我暂时解决该错误的方法。

    关于c++ - OpenCV:在构建opencv_contrib时, ‘AlgorithmInfo’没有命名类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29750303/

    10-09 05:36