2012-05-22 18 views
8

Estoy intentando crear una instancia de un objeto de surf en Python usando OpenCV como se describe here pero esto sucede:Surf desaparecido en OpenCV 2.4 para el pitón

>>> 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' 

¿alguien sabe por qué sucede esto o si SURF falta en el Python versión de OpenCV?

+0

que funciona muy bien hasta 2.3.2, y los documentos dicen que debería funcionar también ¿Qué te muestra dir (cv2)? –

Respuesta

9

Es una regresión que debe corregirse en la próxima actualización de la biblioteca.

Pero SURF no está realmente ausente. Todavía se puede acceder a él a través de las envolturas genéricos:

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

Actualización:cv2.SURF() se restaura en OpenCV 2.4.1

+0

Gracias, eso funciona. ¿A qué te refieres cuando dices que es una regresión? –

+0

Algo como esto http://en.wikipedia.org/wiki/Software_regression –

+2

¿Puede alguien decirnos cuál es la diferencia entre las dos versiones (cv2.FeatureDetector_create ("SURF") + cv2.DescriptorExtractor_create ("SURF") vs. cv2.SURF()) ¿espera que la segunda versión sea más compacta? – lizzie

Cuestiones relacionadas