features - opencv python example
Descriptor FREAK con Opencv Python (2)
Si los puntos clave se detectan correctamente pero el programa se bloquea al generar los descriptores es porque la región del descriptor (que rodea al punto clave) sale de la imagen y hay un acceso de memoria a una posición que no existe .
De alguna manera, debe limitar la región operativa para los descriptores anormales.
Estaba intentando implementar el Descriptor FREAK en Python usando Opencv. Aquí está el código que estoy usando:
def surf_freak_detect(image,hessianThreshold):
surfDetector = cv2.SURF(hessianThreshold)
surfDetector=cv2.GridAdaptedFeatureDetector(surfDetector,50)
keypoints = surfDetector.detect(image,None)
freakExtractor = cv2.DescriptorExtractor_create(''FREAK'')
keypoints,descriptors= freakExtractor.compute(image,keypoints)
del freakExtractor
return keypoints,descriptors
¿Es esta la forma correcta de inicializar el Descriptor Freak ? Al hacer una pequeña depuración descubrí que el intérprete tarda mucho tiempo en Computing the Descriptors y luego eventualmente se cuelga. Los puntos clave se detectan correctamente. ¡Extrañamente, funciona a veces y a veces solo se bloquea !
Ahora hay enlaces de Python para FREAK en OpenCV 3.0. Sus opciones de configuración se describen aquí . Parece que falta la documentación de cómo llamarlo realmente en Python, pero puede usarlo en Python de esta manera:
freakExtractor = cv2.xfeatures2d.FREAK_create()
keypoints,descriptors= freakExtractor.compute(image,keypoints)
(Debe obtener los puntos clave de un detector de funciones por separado, como lo hizo en su código anterior).