enter image description here我尝试使用 findcheckerboardcorners Opencv函数查找棋盘格角。我的图案尺寸是(7x7)。当图像与相机平行时,它可以正常工作,但是当图像稍微向地面倾斜时,它会失败。函数中的(7x7)棋盘图案是否可以将图案大小设为(5x5)?
示例:对于倾斜度更大的图像,此操作将失败。 Image fails
它适用于图像 Image with corners detected
即使图像倾斜,也有可能获得所有可见的角吗?
答案 0 :(得分:-1)
选择校准图案时,请选择水平(8、7)或垂直(7、8)角更多的图案。
您可以尝试检测棋盘格的不同方法。
vector<Point2f> corners;
Size checkerBoardSize(7,7);
bool found = findCheckerBoard(img, checkerBoardSize, corners, CALIB_CB_SYMMETRIC_GRID);
if(!found)
found = findCheckerBoard(img, checkerBoardSize, corners, CALIB_CB_SYMMETRIC_GRID | CALIB_CB_CLUSTERING);
//You can draw and see the detected points as follows
Mat res = img.clone();
if(res.channels() == 1)
cvtColor(res, res, CV_GRAY2BGR);
drawChessboardCorners(res1, checkerBoardSize, corners, found);
imshow("res", res);
waitKey(0);