2014-11-11 16 views
7

Ho compilato OpenCV 3 & opencv_contrib dall'ultimo codice sorgente. Installato nella cartella dei pacchetti del sito per Python 2.7. Posso seguire tutti i tutorial allo http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html tranne quelli che riguardano SIFT.Python + OpenCV 3 - non utilizzare SIFT

Ecco l'errore che ottengo:

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' 

prega di aiuto. Ho cercato & cercato & cercato e non posso trovare nulla relativi a Opencv3.

Oh, e ho utilizzato Visual Studio 2013 per costruirlo.

risposta

12

a partire da 3.0, SIFT, SURF, BRIEF e FREAK sono stati spostati in un opencv_contrib repo separato.

devi scaricarlo, aggiungerlo alle impostazioni cmake principali (vedere il file README lì) e ricostruire il repository opencv principale. dopo "make install" il tuo python dovrebbe avere un nuovo cv2.pyd, che li contenga di nuovo. then:

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

Perché in tutto il mondo il tutorial ufficiale non ha menzionato lo spazio extra ??!? – Maxim

+2

^^ oh, grazie per avermelo raccontato! – berak

+3

appena creato opencv3, ho trovato il modulo di cambio in questo modo: 'sift = cv2.xfeatures2d.SIFT_create()' –