OpenCV 3.1.0:/usr/local/include/opencv2/legacy/legacy.hpp无法编译

时间:2016-07-25 07:46:01

标签: c++ opencv legacy opencv3.1

我遇到了很多错误,比如

/usr/local/include/opencv2/legacy/legacy.hpp:2994:12: error: 'CvSubdiv2DEdge' does not name a type
/usr/local/include/opencv2/legacy/legacy.hpp:3002:12: error: 'CvSubdiv2DPoint' does not name a type
/usr/local/include/opencv2/legacy/legacy.hpp:1757:36: error: 'cv::EM' has not been declared

使用OpenCV 2.4.13编译就好了。看起来他们实际上忘了在legacy.hpp中添加一些必要的包含。发生了什么事?

1 个答案:

答案 0 :(得分:0)

很抱歉误导,但标准设置中实际上没有这样的标题。我的设置与另一个旧版本的opencv混合在一起,并没有打包到deb文件中,只是/ usr / local /中的一堆文件。有趣的是,这是一个干净的安装。

从头开始重新安装OpenCV并删除那些旧文件后,错误更改为遗失了legacy.hpp - 这正是此处所需的。

以下是证据:http://answers.opencv.org/question/42622/opencv-30-deprecated-opencv_legacy-module/。此外,从OpenCV Transition Guide:“遗留的,非自由模块已被删除。一些算法已被移动到不同的位置,一些已被完全重写或删除。”