Quels sont les fonctionnements internes de la fonction OpenCV findChessboardCorners ?
Quels sont les fonctionnements internes de la fonction OpenCV findChessboardCorners ?
Réponses:
Le code source d'OpenCV est disponible, je vous recommande donc de prendre un peu de temps pour parcourir le code. Le fichier correspondant à cette fonction particulière est:
Je ne l'ai pas examiné en détail, mais on dirait
CV_IMPL
int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
                             CvPoint2D32f* out_corners, int* out_corner_count,
                             int flags )
est la principale implémentation de cette méthode. Ici, ils
cvCheckChessboardpour déterminer si un échiquier est dans l'imageicvGenerateQuadspour trouver les carrés.  Le code semble donc aller si un ensemble de contrôles pour condenser ces quadsaux coins échiquiers, y compris icvFindConnectedQuads, icvCleanFoundConnectedQuadspour enlever les coins supplémentaires, icvCheckQuadGroupet icvCheckBoardMonotony.
Toutes ces fonctions sont implémentées dans le même fichier, à l'exception de celui cvCheckChessboardqui est dans calib3d / src / checkchessboard.cpp . Selon la façon dont vous vouliez comprendre le code, il semble y avoir un certain nombre de lignes de débogage, qui peuvent être incluses si vous le souhaitez #define DEBUG_CHESSBOARD, qui peuvent vous aider à voir ce qui se passe.