2012-05-22 13 views
8

Próbuję instancję obiektu surfowania w Pythonie przy użyciu OpenCV jak opisano here ale to się dzieje:Surf brakuje w OpenCV 2.4 dla Pythona

>>> import cv2 
>>> cv2.__version__ 
'2.4.0' 
>>> cv2.SURF() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'SURF' 

Czy ktoś wie dlaczego tak się dzieje lub jeśli SURF brakuje Pythonowa wersja OpenCV?

+0

To działa dobrze aż do 2.3.2, a docs powiedzieć też powinien działać. Co pokazuje ci dir (cv2)? –

Odpowiedz

9

Jest to regresja, która powinna zostać naprawiona w następnej aktualizacji biblioteki.

Ale SURF naprawdę nie jest nieobecny. Nadal można uzyskać do niego dostęp za pośrednictwem ogólnych owijarki:

surf_detector = cv2.FeatureDetector_create("SURF") 
surf_descriptor = cv2.DescriptorExtractor_create("SURF") 

Aktualizacja:cv2.SURF() zostanie przywrócony w OpenCV 2.4.1

+0

Dzięki, że działa. Co masz na myśli mówiąc, że to regresja? –

+0

Coś podobnego do tego http://en.wikipedia.org/wiki/Software_regression –

+2

Czy ktoś może powiedzieć nam, jaka jest różnica między dwiema wersjami (cv2.FeatureDetector_create ("SURF") + cv2.DescriptorExtractor_create ("SURF") vs. cv2.SURF()) oczekują, że druga wersja będzie bardziej kompaktowa? – lizzie

Powiązane problemy