Tengo un proyecto OpenCV mezclando Python y C. Después de cambiar a OpenCV 2.1, mis llamadas al código C ya no funcionan, probablemente porque OpenCV ya no está usando SWIG bindings .SWIG Enlaces de Python al código nativo que no funciona con OpenCV 2.1
piel de pitón, que estaba acostumbrado a llamar a una función C con el siguiente prototipo:
int fast_support_transform(CvMat * I, CvMat * N,...);
Ahora, me sale el siguiente error:
TypeError: in method 'fast_support_transform', argument 1 of type 'CvMat *'
El código C es de una biblioteca creada por mí que usa SWIG para producir la interfaz de Python. No estoy seguro, pero creo que OpenCV está usando ctypes ahora y este código no puede enviar un puntero CvMat a mi código nativo.
¿Conoces una solución rápida a este problema? Cualquier consejo es bienvenido
ACTUALIZACIÓN: Visitantes, tenga en cuenta esta pregunta es obsoleta . El soporte de Python en OpenCV es muy maduro ahora. CvMat
está siendo representado como una matriz Numpy por defecto ahora.
¿Intenta convertir 'cvMat's a' cvArr's y luego usa el cvArr * como argumentos? cvMat se deriva de cvArr. Entonces, una vez que obtenga el puntero cvArr, podrá convertirlo de nuevo a cvMat y usarlo. O la otra opción será volver a la última versión de trabajo de OpenCV. – askmish