OpenCV相机标定全过程

一、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

winSize,死区的一般尺寸,用来避免自相关矩阵的奇点

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值