OpenCV ORB描述符:TypeError:不正确的self类型(必须是'Feature2D'或其衍生物)

Wes*_*sam 16 python opencv image-processing computer-vision opencv3.0

我完全按照这个简单的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)
Run Code Online (Sandbox Code Playgroud)

并收到以下错误:

TypeError: Incorrect type of self (must be 'Feature2D' or its derivative)
Run Code Online (Sandbox Code Playgroud)

我正在使用OpenCV 3.3.1

Wes*_*sam 48

这是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)
Run Code Online (Sandbox Code Playgroud)


sam*_*rya 6

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