相机模型与标定(十二)--opencv圆形标志点检测算法
本来以为圆形检测比较简单,实际还是花费我近一上午时间,网上几乎没有相关资料(除了OpenCV官网)。这里坐下简单介绍,分享给大家。
非对称圆形标定物检测:
1.findCirclesGrid函数的使用,如下:
case ASYMMETRIC_CIRCLES_GRID:boardSize.width = 4;boardSize.height = 11;found = findCirclesGrid(view, boardSize, pointbuf, CALIB_CB_ASYMMETRIC_GRID | CALIB_CB_CLUSTERING, blobDetector);
标定图片:
需要注意的是:
1.boardSize 的宽度,需要设置为图片中固定个数的方向,如上图,水平方向,分别有5,6两种个数,垂直方向只有一种个数,因此,宽度设置为4,此后,以4为一行,则实际该图片在水平方向有11行,因此,高度设置为11.这里弄错,返回就是false了。
2.CALIB_CB_CLUSTERING 标志标识在检测到中心点后,会以层次Kmean方式聚类检测值,并计算检测点围成的凸包角点,并排序外部角点。同时,会根据排序后的2D外部角点和理想估计点,计算单应性H,再计算出所有监测点的投影点,再根据Knn选取跟理想估计点近似最近点,作为实际输出的圆形中点。
3.不设置CALIB_CB_CLUSTERING标志时,则根据CirclesGridFinder 类(几何特征),检测相关圆形,并排序输出。
对称圆形标志检测,流程与上面一致,只是不用关注长宽设置问题。
实际上,主要思路在于利用简单斑点检测器,检测出圆形后,做后续的相关过滤,排序,确认等操作。
相机模型与标定(十二)--opencv圆形标志点检测算法相关推荐
- 相机模型与标定(二)--相机模型
原文: http://blog.csdn.net/lsh_2013/article/details/47615309 相机模型 数码相机图像拍摄的过程实际上是一个光学成像的过程.相机的成像过程涉及到四 ...
- 精通Android自定义View(十二)绘制圆形进度条
1 绘图基础简析 1 精通Android自定义View(一)View的绘制流程简述 2 精通Android自定义View(二)View绘制三部曲 3 精通Android自定义View(三)View绘制 ...
- 《OpenCv视觉之眼》Python图像处理十二 :Opencv图像轮廓提取之基于一阶导数的Roberts算法、Prewitt算法及Sobel算法
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
- vs2019 基于pcl和opencv的体积检测算法 zed版本+安卓端新手版(二)
vs2019 基于pcl和opencv的体积检测算法 zed版本+安卓端新手版(二) Pcl库安卓端的环境配置和使用jni实现c++算法在安卓端的实现 Pcl库的编译 安装ubuntu系统 编译pcl ...
- 八十二、Python | Leetcode贪心算法系列
@Author:Runsen @Date:2020/7/5 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- 十二之续、快速排序算法的深入分析
十二之续.快速排序算法的深入分析 作者:July 二零一一年二月二十七日 -------------------------- 前言 一.快速排序最初的版本 二.Hoare版本的具体分析 三.Ho ...
- 强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C(下)
强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C 本篇实现一个基于A2C框架的PPO算法,应用于连续动作空间任务. import torch import torch.nn a ...
- 相机模型与标定(四)--opencv单目标定例子使用说明
原文: http://blog.csdn.net/t247555529/article/details/47836233 最近一个项目要进行相机的标定,作为一个菜鸟,瞎搞一下午才搞定,于是写篇博客记录 ...
- 相机模型与标定(十)--RANSAC算法
转自王先荣先生: http://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html 本文翻译自维基百科,英文原文地址是:http://en. ...
最新文章
- 用户故事为什么要关联开发数据?
- 列表表格以及媒体元素
- 创建IT运维管理门户
- 【牛客 - 283F】出装方案(最小费用最大流)
- [Git高级教程 (一)] 通过 Tag 标签回退版本修复 bug
- OS复习——设备管理习题
- vtigerCrm 目录结构(整理中)
- uva 10803(floyd)
- 安卓手机连接Mac电脑可用的管理工具:Android File Transfer
- [...ServerPropertiesAutoConfiguration.class] cannot be opened because it does not exist
- 记录TPTP监控tomcat
- 关于ES6中let 和 const 命令的用法以及注意事项:
- ECL模型计量与应用
- 移动支付难倒老年人 如何让他们不被时代抛弃?
- iphone忘记密码了怎么开锁
- 【原】充电桩APP-原型设计
- 数组:翻转指定的次数
- TENER: Adapting Transformer Encoder for Named Entity Recognition
- (一)创建项目——vue-cli3实例:电商分类网页
- 常用多模态医学影像融合数据集
热门文章
- Fuchsia中GN与Ninja构建demo
- Android视频录制-MediaRecorder流程
- Android Track的play流程(三十二)
- VALSE学习(十九):VALSE2018-历届资源汇总
- Android Studio的build.gradle里面的各种版本信息
- tkinter label_tkinter版自制王者荣耀抽卡程序
- 效果过度transition:all
- 计算机内存的基本储存单元,计算机信息存储单元的结构解析
- 右键 无响应_26个你需要学习的Firefox配置技巧,改进和加快浏览器响应速度
- sse java8_Java SSE 服务器推送WEB页面接收数据