当前位置: 首页 > news >正文

【机器视觉------标定篇(二)】三点成圆算法(求相机旋转中心)

应用场景

机器视觉项目应用中,相机安装在机器人上,并且需要定位产品返回坐标偏差以及角度偏差。
与九点标定配合使用,实现精准角度补偿。

算法输入

不共线的三点坐标 A(X₁,Y₁) ,B(X₂,Y₂) ,C(X₃,Y₃)
在这里插入图片描述

算法原理及实现

原理:

由图可知,线OA=OB=OC=外接圆的半径(r),从三点向【以O点为原点的坐标系】做垂线。由勾股定理可得:

(X - X₀)² + (Y - Y₀)² = r ²

由上式带入三点坐标可的可得:
在这里插入图片描述
公式变换可得(由公式①-②,①-③):
计算圆心公式
由于上公式可得,该式有唯一解的条件为:
在这里插入图片描述
即任两点组成的斜率不能相等,也验证了三点成圆条件:三点不共线。

实现:

设:
a = 2(X₁ - X₂)
b = 2(Y₁ - Y₂)

c = 2(X₁ - X₃)
d= 2(Y₁ - Y₃)

e = (X₁)² - (X₂)² + (Y₁)² - (Y₂)²
f = (X₁)² - (X₃)² + (Y₃)² - (Y₃)²

代回方程:
在这里插入图片描述

代码实现

 public PointF CalculateCicular(PointF px1, PointF px2, PointF px3)
{float x1, y1, x2, y2, x3, y3;float a, b, c, g, e, f, X, Y;x1 = px1.X;y1 = px1.Y;x2 = px2.X;y2 = px2.Y;x3 = px3.X;y3 = px3.Y;a = 2 * (x1 - x2);b = 2 * (y1 - y2);c = 2 * (x1 - x3);d = 2 * (y1 - y3);e = x1 * x1 - x2 * x2 + y1 * y1 - y2 * y2;f = x1 * x1 - x3 * x3 + y1 * y1 - y3 * y3;X = (e * d - b * f) / (a * d - b * c);  Y = (e * c - a * f) / (b * c - a * d);//R = (float)Math.Sqrt((X - x1) * (X - x1) + (Y - y1) * (Y - y1)); //半径PointF center = new PointF(X, Y);return center;
}

相关文章:

【机器视觉------标定篇(二)】三点成圆算法(求相机旋转中心)

应用场景 机器视觉项目应用中,相机安装在机器人上,并且需要定位产品返回坐标偏差以及角度偏差。 与九点标定配合使用,实现精准角度补偿。 算法输入 不共线的三点坐标 A(X₁,Y₁) ,B(X₂,Y₂&…...

AUTOSAR E2E详细介绍

E2E概述 E2E(End-To-End)是AUTOSAR为功能安全ISO26262提出的一个安全模块。这里的端(End)并不是指ECU与ECU之间,而是指通信ECU上的SW-C与SW-C之间。 在车载网络中,信息交换通常是从一个ECU发送信号,另一个ECU接收信号。对E2E而言,通常是从源SW-C生成信号,经过RTE(R…...

Dream 主题使用手册 - 基础篇

Dream 主题基于 Halo 博客系统开发,本文将介绍本主题一些功能的使用,文档将持续更新。 一、安装 & 更新 1.1 安装包安装 & 更新 进入主题 Release 界面:https://github.com/nineya/halo-theme-dream/releases 下载主题压缩包 halo…...

WSL下的Kafka开发容器:Docker搭建、API、整合

背景介绍 Kafka是一个分布式流处理平台,可以处理大规模数据流并支持实时数据流的处理。 本文介绍了如何在WSL下使用Docker搭建Kafka容器,并使用Python的kafka-python库和FastAPI框架实现了一个简单的API。同时,还将该服务整合到一个整体的d…...

cv2(OpenCV)下载安装

cv2对应库是OpenCV,官网下载链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 最好下载对应python版本的,通过pip命令安装可能会出现版本过高或者过低的问题,导致import cv2没问题,但是内部函数无法调用。 …...

【剑指 offer】旋转数组的最小数字

✨个人主页:bit me👇 ✨当前专栏:算法训练营👇 旋 转 数 组 的 最 小 数 字核心考点:数组理解,二分查找,临界条件 描述: 有一个长度为 n 的非降序数组,比如[1,2,3,4,5]…...

GB 9706.1-2020 医用电气设备第1部分:基本安全和基本性能的通用要求-1

这是份什么文件 这是一份中华人民共和国国家标准,具体为GB9706.1—2020,标准适用于医用电气设备,并规定了医用电气设备基本安全和基本性能的通用要求。主要涵盖了医疗电器设备与患者接触的各种要求,包括电气安全、机械防护、防护辐…...

认识C++《共、枚、指1》

目录 前言: 1.共用体的基本知识 2.匿名共用体 3.枚举 3.1设置枚举值 3.2枚举的应用场景 3.3枚举变量的取值范围 4.地址和自由存储空间 5.指针的思想 6.指针的声明和初始化 前言: 指针内容比较多,还需要再出一篇。久等了!!我看了我的…...

vim 一键配置

PS:本文是为了以后为了方便,做备忘的,今天用的时候找了半天很麻烦。 vim编辑器一键配置 在非root用户下执行上面的语句即可,不要在root用户下直接安装! 安装的时候需要输入root用户的密码,请找您的服主要一…...

如何成为一名成功的 PHP 开发者

当今的网络应用开发市场,PHP 一直是其中最受欢迎的语言之一,许多优秀的网络应用程序都是由 PHP 开发人员设计和开发的。如果你想成为一名成功的 PHP 开发者,以下是几个关键步骤: 1. 学习基础知识 首先,你需要掌握 PH…...

UHD安装教程

UHD Universal Hardware Driver,即USRP驱动。 UHD,Windows平台安装教程 uhd驱动安装 http://files.ettus.com/binaries/misc/erllc_uhd_winusb_driver.zip 安装LibUSBx http://files.ettus.com/binaries/uhd/latest_release 下载默认C盘 环境配置 将…...

Unity和UE有啥区别?哪个更适合游戏开发

游戏制作软件中最著名的两个游戏引擎是 Unity 和 Unreal Engine。从独立游戏到大型工作室,许多游戏开发商都在使用它们。如果你打算从事游戏行业工作,你肯定曾经问过自己“我的游戏应该使用 Unity 还是 Unreal Engine?” ” 让我们来了解和比…...

红队内网靶场

文章目录开篇介绍靶场介绍靶场下载以及配置Tomcat Get Shell突破DMZ防火墙拿下域内成员机器将内网机器上线到CS使用Adfind侦察子域信息控制子域DCRadmin登录子域进行权限维持(白银票据/ACL)子域bloodhound获取父域信息分析子域Krbtgt密钥创建跨域金票Dcsync父域PTH父域DC准备打…...

如何合并多个升序链表?

前言 本文主要介绍如何将多个小的升序链表合并一个大的升序链表。 需求描述 给出K个升序链接,要求把这K个升序链表合并成一个,并且这个链表也是升序的。 例如:A [1,5,6], B [2,3,8], C [4,4,9] 将这3个链表合并成一个链表D…...

23上半年信息系统项目管理师新老教程兼顾使用备考策略

在离考试仅有50多天的时候,软考办发文:“为方便报考信息系统项目管理师的考生进行复习备考,2023年上半年信息系统项目管理师考试第3版、第4版教程兼顾使用”。 ​其实软考办发布这样一条信息,也是为了照顾那些在新版发布以前按第…...

Linux环境搭建SVN服务器并实现公网访问 - cpolar端口映射

文章目录前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6.2 …...

仿牛客网社区Web开发项目代码逐行精读(更新中)

仿牛客网社区Web开发项目怎么看项目?如何调试项目前瞻技术架构项目亮点开始看代码LoginControllerDiscussPostController怎么看项目? pom.xml看技术架构resource看配置文件,这个项目是前后端不分离的以调试为导向,从前端入手检查…...

5G NR调制阶数与EVM关系以及对系统SNR要求分析

移动通信技术对数据传输速率要求越来越高。一种提高传输速率的思路是使用更高阶的QAM 调制方式,例如5G NR 的256QAM PDSCH,微波的1024QAM,2048QAM和4096QAM 调制。更高阶的QAM 调制方式对系统也提出了更高的要求。例如某个系统的EVM 测试结果…...

【NAS群晖drive异地访问】远程连接drive挂载电脑硬盘「内网穿透」

文章目录前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用3. 结语转发自CSDN远程穿透的文章:【群晖…...

react:hooks为什么不能写在条件语句里

背景 最近朋友在面试,说面试官问到了一个问题不会,说为什么 react hooks为什么不能写在条件语句里,今天我们来研究一下这个问题。 我们在来简单实现一个 useState: const reRender () > {stateIndex -1 ReactDOM.render(&…...

避坑指南:Dify 1.3.1 Docker-Compose部署时,除了镜像拉取慢,你还会遇到的3个典型错误

Dify 1.3.1 Docker-Compose部署实战:3个隐藏陷阱与深度排错指南 当你决定在生产环境部署Dify 1.3.1时,Docker-Compose看似简单的up -d命令背后可能暗藏玄机。本文将从真实故障场景出发,解剖那些官方文档未曾提及的"暗坑"——它们不…...

Agentic Workflow与Workflow的协同之道——RAGFlow 0.20.0企业级实践解析

1. Agentic Workflow与Workflow的协同价值 企业级AI应用开发正面临一个关键矛盾:业务逻辑的确定性需求与LLM带来的灵活性优势如何平衡?RAGFlow 0.20.0给出的答案是让Workflow和Agentic Workflow在统一编排引擎中协同工作。这就像建筑行业中的预制构件与现…...

OpenClaw+Qwen3-32B科研助手:文献综述自动化实践

OpenClawQwen3-32B科研助手:文献综述自动化实践 1. 为什么需要自动化文献综述 作为一名计算机视觉方向的博士生,我每周需要阅读数十篇论文。传统的工作流程是:手动下载PDF→逐篇阅读→摘录关键观点→整理成表格。这个过程不仅耗时&#xff…...

AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库

内置组件库(Element Plus、Ant Design Vue、Vant) VTJ 通过其统一的物料系统架构,与三个流行的 Vue 组件库提供了全面的集成。这一抽象层使开发者能够利用熟悉的组件模式,同时保持低代码的可扩展性和跨库的可移植性。该系统将组件…...

SEO_新手必看的SEO优化入门教程与基础操作指南

<h2>SEO优化入门&#xff1a;为新手量身打造的指南</h2> <p>SEO优化&#xff0c;也就是搜索引擎优化&#xff0c;是一个让你的网站在搜索引擎结果中获得更高排名的过程。对于新手来说&#xff0c;SEO可能看起来有点复杂&#xff0c;但只要掌握了一些基础的操…...

技术破局:B端拓客号码核验的痛点突围与行业新生态,氪迹科技法人股东 核验筛选系统,阶梯式价格

在B端拓客进入“精准致胜”的新时代&#xff0c;线索质量直接决定拓客成效&#xff0c;而号码核验作为筛选有效线索的“第一道门槛”&#xff0c;其服务水平直接影响拓客团队的投入回报与运营效率。当下&#xff0c;随着AI拓客技术的普及&#xff0c;号码核验已渗透到电销、金融…...

HyperDroid深度体验:安卓秒变Win11桌面的秘密武器

1. HyperDroid初体验&#xff1a;当安卓遇上Win11的奇妙化学反应 第一次打开HyperDroid时&#xff0c;我的手机屏幕瞬间变成了熟悉的Windows 11界面&#xff0c;那种感觉就像把电脑桌面装进了口袋。任务栏、开始菜单、甚至窗口的圆角设计都完美复刻&#xff0c;连动态磁贴的亚克…...

WechatDecrypt终极指南:3步轻松解密微信数据库的完整方案

WechatDecrypt终极指南&#xff1a;3步轻松解密微信数据库的完整方案 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 想要找回珍贵的聊天记录却苦于微信加密机制&#xff1f;WechatDecrypt作为一款专业的…...

不止于解题:用玄机靶场案例,打造你的自动化安全日志监控脚本

不止于解题&#xff1a;用玄机靶场案例打造自动化安全日志监控脚本 在网络安全领域&#xff0c;日志分析往往是防御的第一道防线。当我们在玄机靶场中完成SSH爆破日志分析的解题后&#xff0c;是否想过将这些手动操作转化为自动化工具&#xff1f;本文将带你从单次解题跃升到持…...

Labview信号采集与分析系统:基础框架与二次开发的宝藏

Labview 信号采集与分析系统&#xff08;含报告&#xff09; 系统可作自己设计的基础框架&#xff0c;然后在基础上进行二次开发。 系统功能&#xff1a; (1&#xff09;可采集传感器的真实信号&#xff1b; (2&#xff09;可采集 labview 产生的模拟信号&#xff1b; (3&#…...