一、OpenCV标定的几个常用函数
findChessboardCorners() 棋盘格角点检测
bool findChessboardCorners( InputArray image, Size patternSize, OutputArray corners, int flags = CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE );
第一个参数是输入的棋盘格图像(可以是8位单通道或三通道图像);
第二个参数是棋盘格内部的角点的行列数(注意:不是棋盘格的行列数,如棋盘格的行列数分别为4、8,而内部角点的行列数分别是3、7,因此这里应该指定为cv::Size(3, 7));
第三个参数是检测到的棋盘格角点,类型为std::vectorcv::Point2f。
第四个参数flag,用于指定在检测棋盘格角点的过程中所应用的一种或多种过滤方法,可以使用下面的一种或多种,如果都是用则使用OR:
cv::CALIB_CB_ADAPTIVE_THRESH:使用自适应阈值将图像转化成二值图像
cv::CALIB_CB_NORMALIZE_IMAGE:归一化图像灰度系数(用直方图均衡化或者自适应阈值)
cv::CALIB_CB_FILTER_QUADS:在轮廓提取阶段,使用附加条件排除错误的假设
cv::CALIB_CV_FAST_CHECK:快速检测
cv::drawChessboardCorners() 棋盘格角点的绘制
drawChessboardCorners( InputOutputArray image,
Size patternSize, InputArray corners, bool patternWasFound );
image为8-bit,三通道图像
patternSize,每一行每一列的角
corners,已经检测到的角
patternWasFound,findChessboardCorners的返回值
find4QuadCornerSubpix() 对粗提取的角点进行精确化
find4QuadCornerSubpix( InputArray img, InputOutputArray corners, Size region_size );
image源图像
corners,提供角点的初始坐标
region_size: 搜索窗口的一般尺寸
cornerSubPix() 亚像素检测
void cornerSubPix( InputArray image, InputOutputArray corners, Size winSize, Size zeroZone, TermCriteria criteria );
image源图像
corners,提供角点的初始坐标,返回更加精确的点
winSize,搜索窗口的一般尺寸,如果winSize=Size(5,5),则search windows为1111文章来源:https://www.toymoban.com/news/detail-440774.html
winSize,死区的一般尺寸,用来避免自相关矩阵的奇点文章来源地址https://www.toymoban.com/news/detail-440774.html
到了这里,关于OpenCV相机标定全过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!