2013-10-25 4 views
0

Я пытаюсь получить дескрипторы для ключевых точек, которые я уже нашел. Я использую следующие строки кода:Python - Sift Class SIFT.compute

sift = cv2.SIFT() 
self.features,des = sift.compute(self.gray,self.features) 

Однако я получаю сообщение об ошибке:

'cv2.SIFT' object has no attribute 'compute' 

Я не понимаю, почему, потому что по этой ссылке (http://docs.opencv.org/trunk/modules/nonfree/doc/feature_detection.html), это должно быть возможное.

Кто-нибудь знает, что здесь происходит?

Я также заметил, что:

cv2.SIFT.detectAndCompute(image, mask[, descriptors[, useProvidedKeypoints]]) → keypoints, descriptors¶ 

позволяет использовать уже обнаружены ключевые точки ... кому-то быть в состоянии сказать мне, как ввести аргументы правильно для работы этой функции? Кстати, мне не нужно использовать аргумент mask.

Благодарим за помощь.

+0

какой версия вы используете? –

+0

Python? 2.7.2 –

+0

Нет, версия opencv? –

ответ

0

link Вы только что дали, это для версии 3 OpenCV, а не для версии 2, которую вы используете. Таким образом, любые различия в функциях или структуре библиотеки адекватно объясняются, поскольку вы не используете одну и ту же версию (sift = cv2.SIFT()).