2014-11-11 13 views
7

Skompilowałem OpenCV 3 & opencv_contrib z najnowszego kodu źródłowego. Zainstalowałem go w folderze site-packages dla Pythona 2.7. Mogę śledzić wszystkie tutoriale pod numerem http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html z wyjątkiem tych, które dotyczą SIFT.Python + OpenCV 3 - nie można używać SIFT

Tutaj jest błąd pojawia się:

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' 

Proszę o pomoc. Szukałem & wyszukiwane & wyszukiwane i nie mogę znaleźć niczego związanego z Opencv3.

Och, i użyłem Visual Studio 2013 do jego zbudowania.

Odpowiedz

12

od wersji 3.0, SIFT, SURF, BRIEF i FREAK zostały przeniesione do oddzielnego opencv_contrib repo.

będziesz musiał pobrać to, dodać go do swoich głównych ustawień cmake (proszę zobaczyć README tam), i odbudować główne repo opencv. po "make install" twój pyton powinien mieć nową wersję cv2.pyd, która zawiera je ponownie. następnie:

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

Dlaczego na świecie oficjalny tutorial nie wspomniał o dodatkowej przestrzeni?!? – Maxim

+2

^^ och, dzięki za opowiadanie! – berak

+3

właśnie zbudował opencv3, znalazł moduł przesiewania w ten sposób: 'sift = cv2.xfeatures2d.SIFT_create()' –