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,一经查实,立即删除!

相关文章

STM32三种启动模式 boot0 boot1

STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存芯片内置的Flash。2)SRAM芯片内置的RAM区,就是内存啦。3)系统存储器芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段…

实例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…

南京二本有什么计算机学校,南京有什么好的二本学校?

南京是六朝古都,历史底蕴深厚。南京市高等教育资源丰富。南京市有高校53所,其中本科院校35所,35所,本科院校中,民办本科院校10所,公办本科院校25所。25所公办本科院校中,一本院校占多数&#xf…

阿联酋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、前端…

初中计算机课程计划,最新2020年度初中信息技术教学计划(精选3篇).doc

初中信息技术教学计划(精选3篇)初中信息技术教学计划1一、学生基本情况本计划针对七年级全体学生,通过上年的学习,学生对办公软件例如word、excel有一定了解,但是由于每一学期信息技术课时比较少,每周只有一节课,学生的…

dart 乘方运算符_Dart系列-运算符

周末学习了一下Dart语言,按照慕课网Flutter开发第一步-Dart编程语言入门教程进行学习,所以记录一下,感觉慕课网的老师辛苦做的视频教程,说得很清楚,有基础学起来很轻松也很快,本篇来学习dart的运算符。算术…

实例39:python

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

6.0动态加载权限用PermissionGen

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

量子计算机具有天热的,量子绝热计算

摘要:本文在GNU/Linux 平台上基于Libquantum C 编译的环境实现了比QSS(Quantum System Simulator)精度高的量子绝热SAT(satisfiability problem)算法。通过选择Ising 模型的一个简化的Hamiltonian 量,在量子绝热SAT 算法中的精度得到进一步的加强。 第二章,介绍了量…

实例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’’)

python第三方库全部_自动更新Python所有第三方库

一般python用得比较久以后,就会安装很多第三方的库。比如这是我的pip list情况:pip list而且一屏还显示不完。通过如下命令可以看到需要更新的第三方库:pip list -o需要更新的库而pip提供的更新命令只能一个个的更新...pip install -U 库名 #…

2018.09.15 vijos1053Easy sssp(最短路)

传送门 貌似可以最短路时同时判定负环啊。 但我不想这样做。 于是写了一个dfs版的判环&#xff0c;bfs版的求最短路。 代码&#xff1a; #include<iostream> #include<cctype> #include<cstdio> #include<cstring> #include<queue> #define …

计算机学院创新实验室,ACM创新实验室概况

计算机与信息技术学院ACM创新实验室创建于2013年经9月&#xff0c;在学院领导的大力支持下&#xff0c;由兰义华、马晓普两位博士发起组建&#xff0c;经过近年来的发展&#xff0c;在全体队员和教练的共同努力下&#xff0c;实验室形成了较完善的管理制度和较成熟的运行模式&a…

python之pop

python中pop()函数的用法 pop() 函数用于移除列表中的一个元素&#xff08;默认最后一个元素&#xff09;&#xff0c;并且返回该元素的值。 语法&#xff1a;list.pop(objlist[-1]) //默认为 index-1&#xff0c;删除最后一个列表值。 obj – 可选参数&#xff0c;要移除列表元…

函数的有界性

要证明f(x)在X上有界&#xff0c;必须找到一个M>0&#xff0c;使任意x属于X都有 |f(x)|<M&#xff1b;要证明f(x)在X上无界&#xff0c;只需要找到一个数列{xn}存在于X,使f(xn) n趋于∞&#xff0c;f(xn)趋于∞ 外界函数有界&#xff0c;复合函数必有界转载于:https://ww…

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

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

职业中专计算机基础试讲课,职业中专计算机基础教育分析

职业中专计算机基础教育分析摘要&#xff1a;职业教育是指培养面向具体的职业岗位(岗位群)所需职业能力人才的专业基础教育。而在职业教育中除了开设各专业所需的专业课程外&#xff0c;还要开设一些基础教育来充实学生的能力&#xff0c;为其就业打下坚实的基础。计算机基础教…

实例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…