FindChessboardCorners OpenCV işlevinin dahili çalışması nelerdir ?
FindChessboardCorners OpenCV işlevinin dahili çalışması nelerdir ?
Yanıtlar:
OpenCV kaynak kodu mevcuttur, bu yüzden sadece kod üzerinden biraz zaman ayırmanızı tavsiye ederim. Bu özel işlevin ilgili dosyası:
Ona ayrıntılı olarak bakmadım, ama öyle görünüyor
CV_IMPL
int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
CvPoint2D32f* out_corners, int* out_corner_count,
int flags )
bu yöntemin ana uygulamasıdır. Burada onlar
cvCheckChessboard
Bir satranç tahtasının resimde olup olmadığını belirlemek için kullanınicvGenerateQuads
Kareleri bulmak için kullanın . Daha sonra kod denetimler seti bu yoğunlaşmasına rağmen gitmek gibi görünüyor quads
dahil satranç tahtası köşelerine kadar icvFindConnectedQuads
, icvCleanFoundConnectedQuads
ekstra köşeleri, kaldırmak icvCheckQuadGroup
ve icvCheckBoardMonotony
.
Bu işlevlerin tümü haricinde aynı dosyada uygulanan cvCheckChessboard
edildiği olup calib3d / src / checkchessboard.cpp . Kodu ne kadar iyi anlamak istediğinize bağlı olarak #define DEBUG_CHESSBOARD
, neler olup bittiğini görmenize yardımcı olabilecek bir dizi hata ayıklama satırı var gibi görünüyor .