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

点击上方“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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实例37:python

#对10个数进行排序。 #!/usr/bin/python -- coding: UTF-8 -- print (‘请输入10个数字:\n’) a[] for n in range(10): a.append(int(input(‘输入一个数字:\n’))) for i in range(0,9): mini for j in range(i1,10): if a[min]>a[j]: minj if min!i: ta[min] a[min]a[i…

阿联酋esma认证怎么做_行业视野 | 关于阿联酋eCall 的要求更新

行业视野 | 关于阿联酋eCall 的要求更新背景:根据2018年底阿联酋标准与计量局ESMA发布的通知,自2020年起所有出口到阿联酋的2021MY轻型车辆需安装eCall系统,并满足阿联酋相关法规要求。必维集团汽车服务部致力于为国内企业消除认证壁垒&#…

实例38:python

#题目:求一个3*3矩阵主对角线元素之和。 #程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 #!/usr/bin/python -- coding: UTF-8 -- if name ‘main’: a [] sum 0.0 for i in range(3): a.append([]) for j in ran…

Bootstrap table后端分页(ssm版)

说明bootstrap table可以前端分页,也可以后端sql用limit分页。这里讲的是后端分页,即实用limit。性能较好,一般均用这种源码下载地址:https://git.oschina.net/dshvv/pagination_byjava.git该文主要讲后端分页:1、前端…

实例39:python

#题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 #程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。 #程…

6.0动态加载权限用PermissionGen

ndroid 6.0 新增加了运行时的动态添加权限,在此介绍一个第三方库,PermissionGen,可以很方便简洁的增加 6.0权限 首先给大家上 PermissionGen 库地址:https://github.com/lovedise/PermissionGen 下面给大家详细介绍它的使用&…

实例40:python

#将一个数组逆序输出 #!/usr/bin/python -- coding: UTF-8 -- a[0,1,2,3,4,5,6,7,8,9] for i in range(0,10): print(a.pop(),end’’)

康宁玻璃ct值计算公式_【钦州】CT室铅板生产厂家

【钦州】CT室铅板生产厂家石膏板等做复合层,整个工程下来人工费,造价费贵多了。而硫酸钡粉工艺造价费也走高?原因在于,它工艺本身就要考虑墙壁表面平整与否,干燥速度,气候,温度等诸多因素&#…

实例41:python

#模仿静态变量的用法。 #!/usr/bin/python -- coding: UTF-8 -- def varfunc(): var 0 print (‘var %d’ % var) var 1 if name ‘main’: for i in range(3): varfunc() 类的属性 作为类的一个属性吧 class Static: StaticVar 5 def varfunc(self): self.StaticVar…

实例42:python

#题目:学习使用auto定义变量的用法。 #!/usr/bin/python -- coding: UTF-8 -- num 2 def autofunc(): num 1 print (‘internal block num %d’% num) num 1 for i in range(3): print (‘The num %d’ % num) num 1 autofunc()

实例43:python

#模仿静态变量(static)另一案例。 #!/usr/bin/python -- coding: UTF-8 -- class Num: nNum 1 def inc(self): self.nNum 1 print (‘nNum %d’ % self.nNum) if name ‘main’: nNum 2 inst Num() for i in range(3): nNum 1 print (‘The num %d’ % nNum) inst.i…

mac使用Shell(终端)SSH连接远程服务器

前提:要有你需要连接的服务器的ip,端口号,服务器上的账户和密码1、首先打开终端,然后输入sudo su - 回车进入根目录2、然后输入:ssh -p 端口号 服务器用户名ip (例如ssh -p 22 userkunyu119.29.37.63&#…

手机钢琴软件测试自学,手机钢琴app哪个好_自学钢琴软件哪个好_安卓钢琴软件哪个好...

核心提示:手机钢琴的软件有很多,哪些手机钢琴软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考手机钢琴的软件有很多,哪些手机钢琴软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考手机上模拟钢琴app是一款…

实例44:python

#两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵: #X [[12,7,3], [4 ,5,6], [7 ,8,9]] #Y [[5,8,1], [6,7,3], [4,5,9]] #!/usr/bin/python -- coding: UTF-8 -- x [[12,7,3], [4,5,6], [7,8,9]] y [[5,8,1]…

SQLServer之创建非聚集索引

开始之前 典型实现 可以通过下列方法实现非聚集索引: UNIQUE 约束 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束。 如果不存在该表的聚集索引,则可以指定唯一聚集索引。 有关详细信息,请…

outlook2013邮箱找不到服务器,outlook发邮件总提示找不到

2004-11-09无法连接到服务器。 帐户: pop3.sina.com.cn, 服务器: pop3.sina.com.cn, 协议: POP3, 端口: 110, 安全(SSL): 否, 套接字错误: 10060, 错误号: 0x800CCC0E0x800CCC0E 联机到服务器失败,无法与主机建立联机。等一段时间再试。或者用ping 等网络命令测试一…

实例45:python

#累计求和 #!/usr/bin/python -- coding: UTF-8 -- tmp 0 for i in range(1,101): tmp i print (‘The sum is %d’ % tmp)

迁移学习综述

参考论文:A Survey on Transfer Learning 1、Introduction 在机器学习和数据挖掘中有一个很普遍的假设就是训练数据和测试数据来源于统一特征空间并服从相同的分布。而当测试数据分布发生改变之后,我们又不得不从新收集同分布的训练数据并从新训练模型。…

实例46:python

#题目:求输入数字的平方,如果平方运算后小于 50 则退出。 #!/usr/bin/python -- coding: UTF-8 -- TRUE 1 FALSE 0 def SQ(x): return x * x print (‘如果输入的数字小于 50,程序将停止运行。’) again 1 while again: num int(input…

常见笔顺错误的字_最全汉字书写笔顺规则

最全汉字书写笔顺规则汉字笔画名称汉字书写顺序一个字先写哪一笔,后写哪一笔,叫做笔顺。汉字的笔顺有一定规律,一般如下:常见的笔画笔顺易错字;"忄" 先写点和点,最后写竖。"匕" 先写撇…