我的库当前使用 OpenCV 2。现在,我正在尝试编译该库以使用 OpenCV 3。似乎一些头文件被移动,一些常量被重命名。例如,CV_INTER_LINEAR
OpenCV 3 中未定义。
由于我的库需要在 OpenCV 2 和 3 上编译和运行,有什么简单的方法可以克服这种不兼容性吗?
我可以更改我的代码,但它在 OpenCV 2 中不起作用。
几个月前我也遇到了同样的问题,我必须反驳 Kiran:我的项目相对较大,需要使用 OpenCv 2 和 3 进行构建。能够使用 2 和 3 进行构建在项目过渡阶段非常重要,特别是因为 OpenCV 3 还不是稳定版本,但具有惊人的优化功能。
Isn't cv::INTER_LINEAR
两者均在 OpenCV 2 中定义(标头imgproc/imgproc.hpp
)和3?您必须替换一些常量名称,添加一些包含内容,但这不会太难。
关于标头包含,有一种方法可以找到兼容 Opencv2 和 3 的包含路径。
来自基兰发布了链接 http://code.opencv.org/projects/opencv/wiki/ChangeLog#30-alpha:
在 OpenCV 3 中我们写
#include "opencv2/core.hpp"
代替
#include "opencv2/core/core.hpp"
旧方法应该也有效。
Update
In the 新候选版本 http://opencv.org/downloads.html, 据报道 http://code.opencv.org/projects/opencv/wiki/ChangeLog他们改进了 OpenCV 2.4 和 3.x 之间的兼容性
改进了与 OpenCV 2.4 的兼容性:
- 除了标准“opencv2/core/core.hpp”之外,2.4.11 现在还包括“opencv2/core.hpp”和其他此类标头。
- 智能指针 (Ptr)
现在可以以 2.4 和 3.0 样式创建(new ClassName(params) 与
makePtr(参数))
- 训练并存储的统计模型
opencv_ml 2.4 现在可以由 opencv_ml 3.0 按原样加载和使用。
- 这
2.4=>3.0 过渡指南已经勾勒出来:http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)