Quais são as operações internas da função OpenCV findChessboardCorners ?
Quais são as operações internas da função OpenCV findChessboardCorners ?
Respostas:
O código-fonte do OpenCV está disponível, então eu recomendo levar algum tempo analisando o código. O arquivo relevante para esta função específica é:
Eu não olhei para ele em detalhes, mas parece que
CV_IMPL
int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
CvPoint2D32f* out_corners, int* out_corner_count,
int flags )
é a principal implementação desse método. Aqui eles
cvCheckChessboardpara determinar se um tabuleiro de xadrez está na imagemicvGenerateQuadspara encontrar os quadrados. O código parece passar por um conjunto de verificações para condensá-las quadsnos cantos do tabuleiro de xadrez, incluindo icvFindConnectedQuads, icvCleanFoundConnectedQuadspara remover cantos extras icvCheckQuadGroup, e icvCheckBoardMonotony.
Todas essas funções são implementadas no mesmo arquivo, além do cvCheckChessboardque está em calib3d / src / checkchessboard.cpp . Dependendo de quão bem você quisesse entender o código, parece haver várias linhas de depuração, que podem ser incluídas se você #define DEBUG_CHESSBOARDajudar a ver o que está acontecendo.