2017-09-10 5 views
0

J'ai un problème avec la fonction drawAxis dans le module aruco. Le retournement de l'axe Z et le général ne sont pas à 90 degrés (X et Y fonctionnent bien).OpenCV aruco, l'axe Z ne dessine pas correctement

Le problème est illustré par l'écran: flip axis

J'ai essayé caméra changé, détecter un autre marqueurs et faire beaucoup recalibrage (j'ai essayé différentes configurations de photos, entre 15 et 100)

Quand j'imprimé (? x, y) vecteur de rotation (rvec) Je remarqué que l'angle 0 et 1 avait peu de fluctuation, mais angle 2 (z?) sont en constante générale: rvec print

Où pourrait être un problème? Si les axes X et Y fonctionnent correctement, le code doit être correct? Il est normal que rvec_2 soit constant? Ou peut-être est-ce ma faute d'étalonnage?

S'il vous plaît pour des indices! Cordialement!

+0

Peut-être poster des résultats intermédiaires, comme la matrice obtenue avec le calibrage, comment l'utilisez-vous, etc peut aider à en déduire le problème. – api55

+0

Merci pour la réponse, mais quelques heures plus tard, j'ai trouvé la solution: ma faute était en utilisant l'échiquier standard (trouvé dans les fichiers opencv, nommé pattern.png) et le détecteur d'échiquier standard. La solution était assez simple: Je générais carte de charuco et caméra calibrée une fois de plus - tout a bien fonctionné – Fidor

+0

si vous pouvez, essayez de répondre à cette question afin qu'elle soit résolue et quiconque recherche le même problème peut trouver une solution plus rapide. – api55

Répondre

0

J'ai trouvé une solution: mon erreur utilisait damier d'étalonnage standard: bad calibration board

Je sais que cela fonctionne étalonnage dans de nombreux tutoriels très bien, mais dans mon cas - pas

Mon soultion était charuco conseil d'administration (code source pour le générateur de charuco): https://github.com/opencv/opencv_contrib/blob/master/modules/aruco/samples/calibrate_camera_charuco.cpp

Quand j'étalonne mon appareil photo en utilisant ce tout bord fonctionnent très bien

Espérons que cela peut être utile pour quelqu'un, salutations