J'ai un projet OpenCV mélangeant Python et C. Après le passage à OpenCV 2.1, mes appels au code C ne fonctionnent plus, probablement parce qu'OpenCV n'utilise plus les liaisons SWIG .SWIG Liaisons Python vers le code natif ne fonctionnant pas avec OpenCV 2.1
De Python, je l'habitude d'appeler une fonction C avec le prototype suivant:
int fast_support_transform(CvMat * I, CvMat * N,...);
Maintenant, je reçois l'erreur suivante:
TypeError: in method 'fast_support_transform', argument 1 of type 'CvMat *'
Le code C est d'une bibliothèque créée par moi qui utilise SWIG pour produire l'interface Python. Je ne suis pas sûr, mais je pense qu'OpenCV utilise maintenant des ctypes et que ce code est incapable d'envoyer un pointeur CvMat à mon code natif.
Connaissez-vous une solution rapide à ce problème? Tous les conseils sont les bienvenus.
MISE À JOUR: Visiteurs, notez que cette question est dépassée. Le support Python dans OpenCV est très mature maintenant. CvMat
est représenté en tant que tableau Numpy par défaut maintenant.
Essayez de convertir 'cvMat's en' cvArr's, puis en utilisant cvArr * comme arguments? cvMat est dérivé de cvArr. Ainsi, une fois le pointeur cvArr obtenu, vous pouvez le convertir en cvMat et l'utiliser. Ou l'autre option sera de revenir à la dernière version de travail d'OpenCV. – askmish