openCV python 代码中的 detectAndComputer 方法出错

Error around detectAndComputer method in openCV python code

我在 VS 代码中使用 python 3.6.3、opencv-contrib-python-3.3.1.11。我正在尝试 运行 以下代码:

import cv2
image1 = cv2.imread('PATH.image1.jpg',0)
image2 = cv2.imread('PATH.image2.jpg',0)

sift = cv2.xfeatures2d.SIFT_create()

kp1, des1 = sift.detectAndComputer(image1,None)
kp2, desc2 = sift.detectAndComputer(image2,None)

我已经阅读了 SIFT 中针对早期版本的 openCV 的更改以及使用户改为安装 opencv contrib 的更高版本。我的错误不在于创建,而在于 detectAndComputer 方法。这是错误:

Exception has occurred: AttributeError
'cv2.xfeatures2d_SIFT' object has no attribute 'detectAndComputer'

正确的叫法是kp1, des1 = sift.detectAndCompute(image1,None)而不是detectAndComputer

关于这个过程和代码语法有一些细节here

应该是sift.detectAndCompute而不是sift.detectAndCompute(r)