C++不允许使用抽象类类型“cv::ORB”的对象 的解决办法

Jenna ·
更新时间:2024-11-13
· 977 次阅读

方法借鉴:https://blog.csdn.net/weixin_43860261/article/details/88672429

平台:VS2017,opencv4.0.1进行编程
报错问题:在定义ORB对象的时候报错,不允许使用抽象类类型“cv::ORB”的对象

为什么会报错?
角点检测的几个方法(SURF,SIFT,ORB)都被转移opencv_contrib中了。所以版本之间有差异。

这是转移前的写法:

ORB orb; orb.detect(img_1, keypoints_1); orb.detect(img_2, keypoints_2);

这种是转移后的写法:

Ptr orb = ORB::create(); orb->detect(img_1, keypoints_1); orb->detect(img_2, keypoints_2);

希望大家能避开这个坑。


作者:鸿儒517



抽象 c+ 对象 C++ 抽象类 orb

需要 登录 后方可回复, 如果你还没有账号请 注册新账号