2014-11-11 5 views
7

Я скомпилировал OpenCV 3 & opencv_contrib из последнего исходного кода. Установил его в папку сайтов-пакетов для Python 2.7. Я могу следить за всеми учебниками по адресу http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html, за исключением тех, которые связаны с SIFT.Python + OpenCV 3 - can not use SIFT

Здесь ошибка я получаю:

Traceback (most recent call last): 
    File "C:\Projects\icu\ex01.py", line 9, in <module> 
    sift = cv2.SIFT() 
AttributeError: 'module' object has no attribute 'SIFT' 

Пожалуйста, помогите. Я искал & искал & искал и не мог найти что-нибудь, что связано с Opencv3.

Ой, и я использовал Visual Studio 2013 для его создания.

ответ

12

от 3.0, SIFT, SURF, BRIEF и FREAK были перемещены в отдельное положение opencv_contrib repo.

вам нужно будет скачать это, добавьте его в свои основные настройки cmake (см. Здесь README) и перестройте основное opecv repo. после «make install» ваш python должен иметь новый cv2.pyd, который содержит их снова. затем:

# note the additional namespace: 
sift = cv2.xfeatures2d.SIFT_create() 
+5

Почему в мире официальное руководство не упоминает дополнительное пространство?!? – Maxim

+2

^^ Ох, спасибо за рассказ! – berak

+3

только что построил opencv3, нашел просеивающий модуль следующим образом: 'sift = cv2.xfeatures2d.SIFT_create()' –