Opencv 倾斜图像棋盘格角点的确定

Opencv 倾斜图像棋盘格角点的确定,opencv,image-processing,computer-vision,Opencv,Image Processing,Computer Vision,我尝试使用findcheckerboardcornersOpencv函数查找棋盘格角点。我的图案尺寸是(7x7)。当图像与相机平行时,它可以正常工作,但当图像稍微向地面倾斜时,它就会失效。对于函数中的(7x7)棋盘格图案,是否可以将图案大小指定为(5x5) 示例:对于倾斜度更大的图像,它失败 它对图像有用 即使图像倾斜,是否有可能获得所有可见角?当您选择校准图案时,请选择在水平方向(8,7)或垂直方向(7,8)具有更多角的图案 有不同的选项,您可以尝试检测棋盘 vector<Point2

我尝试使用findcheckerboardcornersOpencv函数查找棋盘格角点。我的图案尺寸是(7x7)。当图像与相机平行时,它可以正常工作,但当图像稍微向地面倾斜时,它就会失效。对于函数中的(7x7)棋盘格图案,是否可以将图案大小指定为(5x5)

示例:对于倾斜度更大的图像,它失败

它对图像有用


即使图像倾斜,是否有可能获得所有可见角?

当您选择校准图案时,请选择在水平方向(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);
矢量角点;
棋盘格大小(7,7);
bool found=findCheckerBoard(img、棋盘格大小、角、校准CB对称网格);
如果(!找到)
found=findCheckerBoard(img、棋盘格大小、角、校准、对称网格、校准、校准、校准、校准、校准);
//您可以按如下方式绘制并查看检测到的点
Mat res=img.clone();
如果(分辨率通道()==1)
CVT颜色(分辨率、分辨率、CV_灰度2BGR);
drawChessboardCorners(res1,棋盘大小,角,已找到);
imshow(“res”,res);
等待键(0);

如果您为算法指定了另一个尺寸,则该尺寸将不明确(取5x5点),之后您的校准将出错。可能是因为它和天花板上的光线混淆了吧?你能用
drawChessboardCorners
画出检测到的标记并贴出它的图像吗?为了了解检测到的内容和未检测到的内容,我上传了我的结果,对于7x7图案大小的secong图像和5x5图案大小的secong图像,我无法打开图像,该博客不公开。请使用问题中的“编辑”按钮添加图像。请参见以下答案:1)2)谢谢。。但我在检测棋盘格图案时遇到了问题,棋盘格图案倾斜且与相机不平行。其中findChessboardCorners()函数返回null