Falta surf en opencv 2.4 para python
Frecuentes
Visto 4,219 veces
8
Estoy tratando de crear una instancia de un objeto SURF en python usando OpenCV como se describe aquí pero esto sucede:
>>> 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 la versión Python de OpenCV?
1 Respuestas
9
Es una regresión que debería corregirse en la próxima actualización de la biblioteca.
Pero SURF no está realmente ausente. Todavía puede acceder a él a través de los contenedores genéricos:
surf_detector = cv2.FeatureDetector_create("SURF")
surf_descriptor = cv2.DescriptorExtractor_create("SURF")
Actualizar: cv2.SURF()
se restaura en OpenCV 2.4.1
Respondido el 22 de junio de 12 a las 09:06
Gracias, eso funciona. ¿A qué te refieres cuando dices que es una regresión? - Cassidy Laidlaw
¿Alguien puede decirnos cuál es la diferencia entre las dos versiones (cv2.FeatureDetector_create("SURF") + cv2.DescriptorExtractor_create("SURF") frente a cv2.SURF()) esperando que la segunda versión sea más compacta? - genoveva
¿Está realmente arreglado en 2.4.1? Estoy tratando de usar 2.4.2 y veo el mismo error. - ben mccann
@AndreyKamaev: Recibo un error de segmento cuando llamo getParams()
sobre el objeto resultante; ¿Cómo configuro, por ejemplo, upright
a True
? - jmetz
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas python opencv surf or haz tu propia pregunta.
Eso funciona bien hasta 2.3.2, y los documentos dicen que también debería funcionar. ¿Qué te muestra dir(cv2)? - Eduardo Ivanec