机器视觉:9点标定的原理与实现

一、什么是标定

标定就是将机器视觉处理得到的像素坐标转换成实际项目中使用到的毫米坐标。简单说即使看看实际单位距离内有几个像素,如下图所示,10mm的距离内有222个像素,那像素坐标和实际的毫米坐标就有个比例关系了。

二、九点标定

9点标定的算法主要用于建立相机像素坐标与机械手世界坐标之间的转换关系。通过已知的9个点的图像坐标和对应的机械坐标,直接计算转换矩阵,核心原理就是最小二乘拟合。

9点标定的核心在于通过少量的点来精确计算坐标转换关系,适用于2D平面上的仿射变换,9点标定不仅计算简单,而且在实际应用中非常有效。

具体步骤包括:

1、制作9点标定板或者标定图,通常是3*3的阵列排列,确保相机的视野能覆盖到所有的点,一般这些点是圆形的标记。

2、相机拍照,在图片上找到这9个圆点的中心坐标,并记录下来,同时也要记录下这些点的机械坐标。

3、使用采集到的图像坐标和机械坐标,通过最小二乘法计算出一个3*3的转换矩阵。

4、得到转换矩阵后,可以用它将新的图像坐标换成机械坐标,从而实现相机和机械手的协调工作。

三、最小二乘法的原理

最小二乘法拟合的目的就是找到使误差平方和最小的参数值。

他的基本原理就是找到一个函数曲线,使得该曲线和实际数据点之间的误差最小。具体而言,最小二乘法通过找到使误差平方和最小的参数值,来得到最佳的拟合曲线。误差是指实际数据点与拟合曲线之间的差异,平方和的最小化是为了消除正负差异的影响并凸显较大误差的重要性。

最小二乘法公式在数学砂锅称为曲线拟合,不仅仅包括线性回归方程,还包括矩阵的最小二乘法。现象最小二乘法就是二元一次方程,矩阵的最小二乘法就是两个方向上的二元一次方程了,如下所示:

四、 9点标定的工程实现

1、获取实心圆矩阵坐标上的圆心坐标,有几个关键的参数

        获取标定板的图像Img;

        9个圆点的极性,是黑点白背景,还是白点黑背景;

        提取圆点的灰度阈值是多少,为了在比较模糊的图像中获取圆点;

        圆点的面积范围,算法要找圆点,得给个大致的范围,圆点有多大得告诉算法。

2、计算图像坐标和世界坐标的映射关系

        图像坐标是通过拍照,软件找到圆点算出来的像素坐标,世界坐标就是标定板上9个点的实际坐标;

        还需要标定图像的高度和宽度;

        计算得到映射关系,有的叫做转换关系;

        映射关系通过最小二乘法计算出来,MATLAB,halcon的库都有现成的函数可用。

        当然计算出来的转换关系是要保存下来的,以后每次都可以使用,用不着每次都去标定一下。

        

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

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

相关文章

【万能软件篇】03-Batchplot_setup_3.5.6(CAD批量打印插件)

批量打印插件(Batchplot)简介 Batchplot是一个专门针对AutoCAD2000以上版本设计的单DWG多图纸的批量生成布局、批量打印、批量分图工具。自行判定的图框位置与尺寸,根据当前的打印机设置,自动调整打印的方式,实现批量生…

2024 AFS-46 电子数据存在性鉴定(移动终端)(2024能力验证)

一、委托事项 1.给出检材手机的MEID。 2.给出检材手机在2024年7月3日上午连接过的设备名称。 3.给出检材手机中kimi应用最近一次被中断回答的问题内容。 4.给出检材手机中安装过的即时通讯应用的包名(不包含虚拟机中的应用)。 5.检材手机中安装有几…

C#与C++交互开发系列(十一):委托和函数指针传递

前言 在C#与C的互操作中,委托(delegate)和函数指针的传递是一个复杂但非常强大的功能。这可以实现从C回调C#方法,或者在C#中调用C函数指针的能力。无论是跨语言调用回调函数,还是在多线程、异步任务中使用委托&#x…

《数字图像处理基础》学习03-图像的采样

在之前的学习中我已经知道了图像的分类:物理图像和虚拟图像。《数字图像处理基础》学习01-数字图像处理的相关基础知识_图像处理 数字-CSDN博客 目录 一,连续图像和离散图像的概念 二,图像的采样 1, 不同采样频率采样同一张图…

Linux系统基础-多线程超详细讲解(1)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux系统基础-多线程超详细讲解(1) 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 …

QGIS提取面的顶点坐标到属性表

相关参考:QGIS中提取面的中心坐标到属性表-CSDN博客 polygon_layer QgsProject.instance().mapLayersByName("Polygon")[0]polygon_layer.startEditing() polygon_layer.dataProvider().addAttributes([QgsField("coors", QVariant.String, le…

面向对象编程中类与类之间的关系(二)

目录 1.引言 2.泛化(继承)关系 3.实现关系 4.聚合关系 5.组合关系 6.依赖关系 7.关联关系 7.1. 单向关联 7.2. 双向关联 7.3.自关联 8.总结 1.引言 在面向对象设计模式中,类与类之间主要有6种关系,他们分别是&#xff…

Android Studio安装完成后,下载gradle-7.4-bin.zip出现连接超时

文章目录 问题原因:因为下载镜像是谷歌,属于外网,不好正常连接,下载依赖。解决方法:找到gradle-wrapper.properties文件,修改镜像,如下图,然后再单击try again重新下载。 问题原因&a…

[论文阅读]Constrained Decision Transformer for Offline Safe Reinforcement Learning

Constrained Decision Transformer for Offline Safe Reinforcement Learning Proceedings of the 40th International Conference on Machine Learning (ICML), July 23-29, 2023 https://arxiv.org/abs/2302.07351 泛读只需要了解其核心思想即可。 安全强化学习(Safe Rei…

解决 IntelliJ IDEA 中使用 Lombok 编译报错的几种方法

目录 引言 常见的 Lombok 编译错误 解决方法 方法一:确保最新版本 Lombok 库已添加到项目依赖 方法二:检查 IDEA 的编译器设置 方法三:安装并启用 Lombok 插件 方法四:配置 Lombok 注解处理器 方法五:检查 Lom…

基于熵权法的TOPSIS模型

基于熵权法的TOPSIS模型 1. 简介 数学建模可以结合 熵权法 和 T O P S I S TOPSIS TOPSIS 法各自的特点,进行评价,这种组合模型的使用在数学建模比赛中使用的非常多。 在 2023 美赛 O 奖中就有使用该方法的,往年国赛国奖中也有 2. 熵权法介…

js基础入门篇

1.输出语句&#xff0c;内部样式&#xff0c;外部样式&#xff0c;数组定义 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.…

EV代码签名证书是什么?作用有哪些?如何获取呢?

我们都知道&#xff0c;黑客们往往会通过篡改软件代码来进行各种恶意行为&#xff0c;例如加入病毒、木马、恶意代码等&#xff0c;为了确保软件代码的完整性和可信任性&#xff0c;代码签名证书诞生了。代码签名证书又分为普通代码签名证书和EV代码签名证书&#xff0c;今天我…

python原地去重实战案例笔记

数据样例&#xff1a;&#x1f447; 最终想要的结果&#xff1a; 一、解决办法 思路&#xff1a;处理逐个元素检查是否已经出现过&#xff0c;重复的元素用空字符串替换。 # 原始数据 data [[数据1, 数据2, 数据3, 数据4, 数据5],[D, A, S, Q, J],[Y, L, D, J, O],[G, X, X,…

给哔哩哔哩bilibili电脑版做个手机遥控器

前言 bilibili电脑版可以在电脑屏幕上观看bilibili视频。然而&#xff0c;电脑版的bilibili不能通过手机控制视频翻页和调节音量&#xff0c;这意味着观看视频时需要一直坐在电脑旁边。那么&#xff0c;有没有办法制作一个手机遥控器来控制bilibili电脑版呢&#xff1f; 首先…

如何在macOS开发中给 PKG 签名和公证(productsign+notarytool)

在macOS中&#xff0c;给PKG文件进行签名是一个确保用户能够顺利无警告地安装软件的重要步骤。以下是给PKG签名的详细步骤&#xff1a; 一、准备阶段 获取开发者账号和证书&#xff1a; 首先&#xff0c;需要在苹果开发者网站&#xff08;Apple Developer&#xff09;注册一个…

Linux系统下minio设置SSL证书进行HTTPS远程连接访问

文章目录 1.配置SSL证书使用HTTPS访问2.MINIO SDK 忽略证书验证3.使用受信任的证书 1.配置SSL证书使用HTTPS访问 生成域名对应的SSL证书&#xff0c;下载Apache版本&#xff0c;我目前只发现Apache这个里面有对应的私钥和证书 私钥重命名为private.key证书重命名为public.crt&…

AtCoder ABC376A-D题解

个人觉得 ABC 变得越来越难了/kk/kk/kk 比赛链接:ABC376 Problem A: Code #include <bits/stdc.h> using namespace std; int main(){int N,C;cin>>N>>C;for(int i1;i<N;i)cin>>T[i];int ans0,pre-1e5;for(int i1;i<N;i){if(T[i]-pre>C){…

Java:String类(超详解!)

一.常用方法 &#x1f94f;1.字符串构造 字符串构造有三种方法&#xff1a; &#x1f4cc;注意&#xff1a; 1. String是引用类型&#xff0c;内部并不存储字符串本身 如果String是一个引用那么s1和s3应该指向同一个内容&#xff0c;s1和s2是相等的&#xff0c;应该输出两…

使用Django框架开发企业级Web应用

&#x1f496; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4bb; Gitee主页&#xff1a;瑕疵的gitee主页 &#x1f680; 文章专栏&#xff1a;《热点资讯》 使用Django框架开发企业级Web应用 1 引言 2 Django简介 3 安装Python与Django 4 创建Django项目 5 设计应用结构 6 创…