我遇到了很多错误,比如
/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 中。怎么回事?
最佳答案
抱歉造成误导,但标准设置中实际上没有这样的 header 。我的设置与另一个旧版本的 opencv 混合在一起,它没有打包到 deb 文件中,只是/usr/local/中的一堆文件。有趣的是,这是一个干净的安装。
从头开始重新安装 OpenCV 并删除那些旧文件后,错误更改为 legacy.hpp 丢失 - 这正是这里所需要的。
这是证明:http://answers.opencv.org/question/42622/opencv-30-deprecated-opencv_legacy-module/ .此外,来自 OpenCV 转换指南:“遗留的、非自由的模块已被删除。一些算法已被移动到不同的位置,一些已被完全重写或删除。”
关于c++ - OpenCV 3.1.0 :/usr/local/include/opencv2/legacy/legacy. hpp 无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38562229/