normalize函数_提取棋盘格角点函数解析

本文介绍了OpenCV4.3中的新函数findChessboardCornersSB,用于更精确地提取棋盘格角点。该函数在图像处理前会进行normalize操作,提高角点检测的准确性。此外,文章还探讨了函数的参数设置,如CALIB_CB_NORMALIZE_IMAGE等标志,以及如何使用元数据恢复角点信息,适用于高精度的相机校准场景。
摘要由CSDN通过智能技术生成

点击上方“Qt学视觉”,选择“星标”公众号重磅干货,第一时间送达

共同学习共同进步

1、如何查阅OpenCV官方说明文档

    查阅地址:

    https://docs.opencv.org/4.3.0/

    我这里使用的是OpenCV4.3,所以我需要查阅的就是4.3版本的说明文档

c3baabe4c952134e13e56edcbc0aeebe.png

上图就是OpenCV4.3官方文档的主界面

在这里我们需要查阅的就是calib3d模块,所以需要打开calib3d对应的内部说明介绍

3a8a626d2aca7dd2ef51704d7256d339.png

1e99af21d617931e7ea875bd41ffa288.png

逐步玩下拉,找到找棋盘格角点的函数

10461974fc84e99fb533e75a578e308c.png

这里看到有好几个函数,我们需要了解的便是OpenCV4.3新出的

findChessboardCornersSB提取角点的函数,这函数会比以前版本的提取角点更加精确

2、findChessboardCornersSB提取角点

官方文档介绍

78fc924d5d4c6552056e78715b982469.png

078d70a23df67509eed3933f8499d53f.png

4fffe7170bf8ed80a7657c01dad4bb24.png

cc2195963fe2e3d689d64d800f5f5252.png

6ca736f4ab8fb2620754d7ff41ce1511.png

这里的参数主要有

image:源棋盘图。它必须是8位灰度或彩色图像。

patternSize:每个棋盘行和列的内角数 cv :: Size(columns,rows)

corners:输出角点

flags:标志位,各种操作标志,可以为零或以下值的组合:

  • CALIB_CB_NORMALIZE_IMAGE 在检测之前先使用equalizeHist来均衡化图像gamma值

  • CALIB_CB_EXHAUSTIVE 进行详尽的搜索以提高检测率.

  • CALIB_CB_ACCURACY 由于混叠效应,使样本输入图像上移以提高子像素精度.

  • CALIB_CB_LARGER允许检测到的图案大于patternSize

  • CALIB_CB_MARKER检测到的图案必须具有标记。如果需要精确的相机校准,则应使用此选项.

meta:检测到的角的可选输出数组(CV_8UC1,大小= cv::Size(列,行))。每个条目代表模式的一个角,并且可以具有以下值之一:

  • 0 = 未附加元数据

  • 1 = 黑色单元的左上角

  • 2 = 白色单元的左上角

  • 3 = 黑色单元格的左上角带有白色标记点

  • 4 = 白色单元格的左上角带有黑色标记点(如果是标记,则为图案原点,否则为第一个角)

    该函数类似于findchessboardCorners,但使用本地化框式滤波器近似的变换对各种噪声更鲁棒,在较大的图像上更快,并且能够直接返回内部棋盘角的子像素位置。该方法基于论文[56]“用于校准的棋盘格角的精确检测和定位”,表明返回的子像素位置比cornerSubPix返回的子像素位置更精确,从而可以对要求苛刻的应用程序进行精确的相机校准。

    在这种情况下,将给出标志CALIB_CB_LARGER或CALIB_CB_MARKER,可以从可选的元数组中恢复结果。这两个标志都有助于使用超出摄像机视场的校准图案。这些超大尺寸的图案允许更精确的校准,因为可以利用尽可能靠近图像边界的角。为了在所有图像上保持一致的坐标系,可以使用可选的标记(请参见下图)将板的原点移动到黑色圆圈所在的位置。

注意

    该功能需要一块白色边框,其宽度与整个木板周围的棋盘区域之一的宽度大致相同,以改善在各种环境中的检测能力。另外,由于局部的transformation变换,将圆角用于位于板外部的场角是有益的。下图说明了为检测而优化的示例棋盘格。但是,也可以使用任何其他棋盘格。

bbf42fca5ad92c8bcedec8beb9c92f84.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值