本例程是相机标定的第一步,通过findChessboardCorners找到棋盘上的所有角点,然后再通过调用cornerSubPix亚像素精确化,找到精确的角点坐标,然后调用circle画出角点位置。
主要函数介绍:
findChessboardCorners()
- 功能:寻找棋盘图的内角点位置
- 函数形式:
int cvFindChessboardCorners( const void* image, CvSize pattern_size, CvPoint2D32f* corners, int* corner_count=NULL, int flags=CV_CALIB_CB_ADAPTIVE_THRESH );
- 参数:
- image:输入的棋盘图,必须是8位的灰度或者彩色图像。
- pattern_size:棋盘图中每行和每列角点的个数
- corners:检测到的角点
- corner_count:输出,角点的个数。如果不是NULL,函数将检测到的角点的个数存储于此变量
- flags:各种操作标志,可以是0或者下面值的组合:
- CV_CALIB_CB_ADAPTIVE_THRESH - 使用自适应阈值(通过平均图像亮度计算得到)将图像转换为黑白图,而不是一个固定的阈值。
- CV_CALIB_CB_NORMALIZE_IMAGE - 在利用固定阈值或者自适应的阈值进行二值化之前,先使用cvNormalizeHist来均衡化图像亮度。
- CV_CALIB_CB_FILTER_QUADS - 使用其他