OpenCV ORB 描述符:TypeError:自身类型不正确(必须是“Feature2D”或其派生物)

新手上路,请多包涵

我完全遵循了这个简单的 OpenCV 特征匹配示例

 import cv2

img = cv2.imread('box.png',0) # queryImage
orb = cv2.ORB()               # Initiate ORB detector

# find the keypoints and descriptors with ORB
kp1, des1 = orb.detectAndCompute(img, None)

并收到以下错误:

 TypeError: Incorrect type of self (must be 'Feature2D' or its derivative)

我正在使用 OpenCV 3.3.1

原文由 Sam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 563
2 个回答

这是一个 OpenCV 版本兼容性问题。只需使用 cv2.ORB_create() 而不是 cv2.ORB()

代码应如下所示:

 import cv2

img = cv2.imread('box.png',0) # queryImage
orb = cv2.ORB_create()        # Initiate SIFT detector

# find the keypoints and descriptors with SIFT
kp1, des1 = orb.detectAndCompute(img, None)

原文由 Sam 发布,翻译遵循 CC BY-SA 3.0 许可协议

cv2.ORB_create() 会做我认为的工作

原文由 sameer maurya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题