Apa fungsi internal dari fungsi OpenCV findChessboardCorners ?
sumber
Apa fungsi internal dari fungsi OpenCV findChessboardCorners ?
Kode sumber OpenCV tersedia, jadi saya sarankan hanya mengambil sedikit waktu melalui kode. File yang relevan untuk fungsi khusus ini adalah:
Saya belum memeriksanya secara detail, tetapi sepertinya
CV_IMPL
int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
CvPoint2D32f* out_corners, int* out_corner_count,
int flags )
adalah implementasi utama dari metode ini. Di sini mereka
cvCheckChessboard
untuk menentukan apakah papan catur ada di gambaricvGenerateQuads
untuk menemukan kotak. Kode kemudian tampaknya pergi melalui serangkaian cek untuk memadatkan ini quads
ke sudut papan catur, termasuk icvFindConnectedQuads
, icvCleanFoundConnectedQuads
untuk menghapus sudut ekstra icvCheckQuadGroup
,, dan icvCheckBoardMonotony
.
Semua fungsi ini diimplementasikan dalam file yang sama, selain dari cvCheckChessboard
yang ada di calib3d / src / checkchessboard.cpp . Tergantung seberapa baik Anda ingin memahami kode tersebut, tampaknya ada sejumlah baris debug, yang dapat dimasukkan jika Anda #define DEBUG_CHESSBOARD
, yang dapat membantu Anda melihat apa yang terjadi.