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

Halcon应用:九点标定-手眼标定

提示:若没有查找的算子,可以评论区留言,会尽快更新

Halcon应用:九点标定-手眼标定

  • 前言
  • 一、Halcon应用?
  • 二、应用实战
      • 1、图形理解[eye-to-hand]:
      • 1.1、开始应用
      • 2 图形理解[eye-in-hand]

前言

本篇博文主要用于记录学习Halcon中算子的应用场景,及其使用代码和图像展示。只讲通俗易懂使用方法,不讲原理,不讲原理,不讲原理,重要的事情说三遍。
九点标定-手眼标定:想象一下,人眼睛看到一个东西的时候要让手去抓取,就会控制手到物体旁边,可是眼睛看到的位置和手的位置所处的不一样,这就需要知道眼镜和手的坐标关系。如果把大脑比作中间人,把眼睛比作A,把手比作C,如果A和中间人的关系知道,中间人和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标关系也就清晰了。


提示:以下是本篇文章正文内容,下面案例可供参考,注意参数坐标的使用,能帮助你理解算子

一、Halcon应用?

Halcon 是一个强大的图像处理工具,该工具是为了解决机器视觉项目任务而创建的。

二、应用实战

1、图形理解[eye-to-hand]:

眼在手外:站在相机角度看到的三角形物体,与站在机械臂角度看到的物体可能会有所差异,比如:
在这里插入图片描述
在这里插入图片描述

									视角差异图

大家看到这个脑海中是否会出现之前的一个应用:仿射变换,没错,就是用到仿射变换,将相机视角的图变化到机械臂视角,经过平移和放缩,旋转。

1.1、开始应用

我们可以采用九点标定板进行标定,在相机视角下,通过halcon将每一个点的图像坐标获取到,采用一一对应的方式,获得对应机械臂坐标下的各个点的机械坐标,这样就分别获得两组坐标,分别是相机视角下的坐标[Qx, Qy],一个是机械视角下的坐标[Rx, Ry]。
在这里插入图片描述

*假定已经获得图像坐标下的九点位置
column_img := [50,150,200,50,150,200,50,150,200]
row_img := [20,20,20,70,70,70,120,120,120]
*分别获得机械坐标下的九个点位置
column_robot :=[275,225,170,280,230,180,295,240,190]
row_robot := [55,50,45,5,0,-5,-50,-50,-50]*利用该算子构建变换矩阵
vector_to_hom_mat2d (row_img, column_img, row_robot, column_robot, HomMat2D)
* 获得需要知道的图像坐标下的某点(Qx, Qy)的机械坐标(Rx, Ry)
affine_trans_point_2d (HomMat2D, Qx, Qy, Rx, Ry)
* 标定完成

2 图形理解[eye-in-hand]

眼在手中:相机固定在机械手上面,这种情况的标定过程实际上和相机和机械手分离的标定方法是一样的,随着机械臂带着相机移动,相机视野中的三角形区域会发生变化,某些情况下只能三角形的一个角区域。
在这里插入图片描述

相关文章:

Halcon应用:九点标定-手眼标定

提示:若没有查找的算子,可以评论区留言,会尽快更新 Halcon应用:九点标定-手眼标定 前言一、Halcon应用?二、应用实战1、图形理解[eye-to-hand]:1.1、开始应用2 图形理解[eye-in-hand] 前言 本篇博文主要用…...

【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(一)

自动引用计数 前言alloc/retain/release/dealloc实现苹果的实现 autoreleaseautorelease实现苹果的实现 总结 前言 此前,写过一遍对自动引用计数的简单学习,因此掠过其中相同的部分:引用计数初步学习 alloc/retain/release/dealloc实现 由于…...

Python爬虫第15节-2025今日头条街拍美图抓取实战

目录 一、项目背景与概述 二、环境准备与工具配置 2.1 开发环境要求 2.2 辅助工具配置 三、详细抓取流程解析 3.1 页面加载机制分析 3.2 关键请求识别技巧 3.3 参数规律深度分析 四、爬虫代码实现 五、实现关键 六、法律与道德规范 一、项目概述 在当今互联网时代&a…...

智慧城市像一张无形大网,如何紧密连接你我他?

智慧城市作为复杂巨系统,其核心在于通过技术创新构建无缝连接的网络,使物理空间与数字空间深度融合。这张"无形大网"由物联网感知层、城市数据中台、人工智能中枢、数字服务入口和安全信任机制五大支柱编织而成,正在重塑城市运行规…...

网络安全·第四天·扫描工具Nmap的运用

今天我们要介绍网络安全中常用的一种扫描工具Nmap,它被设计用来快速扫描大型网络,主要功能包括主机探测、端口扫描以及版本检测,小编将在下文详细介绍Nmap相应的命令。 Nmap的下载安装地址为:Nmap: the Network Mapper - Free Se…...

黑龙江 GPU 服务器租用:开启高效计算新征程

随着人工智能、深度学习、大数据分析等技术的广泛应用,对强大计算能力的需求日益迫切。GPU 服务器作为能够提供卓越并行计算能力的关键设备,在这一进程中发挥着至关重要的作用。对于黑龙江地区的企业、科研机构和开发者而言,选择合适的 GPU 服…...

大数据面试问答-HBase/ClickHouse

1. HBase 1.1 概念 HBase是构建在Hadoop HDFS之上的分布式NoSQL数据库,采用列式存储模型,支持海量数据的实时读写和随机访问。适用于高吞吐、低延迟的场景,如实时日志处理、在线交易等。 RowKey(行键) 定义&#xf…...

SparseDrive---论文阅读

纯视觉下的稀疏场景表示 算法动机&开创性思路 算法动机: 依赖于计算成本高昂的鸟瞰图(BEV)特征表示。预测和规划的设计过于直接,没有充分利用周围代理和自我车辆之间的高阶和双向交互。场景信息是在agent周围提取&#xff…...

数字时代的AI与大数据:用高级AI开发技术革新大数据管理

李升伟 编译 在当今数字时代,数据的爆炸式增长令人惊叹 从社交媒体互动到物联网设备的传感器数据,企业正被海量信息淹没。但如何将这种无序的数据洪流转化为有价值的洞察?答案在于人工智能(AI)开发技术的革新&#x…...

Unchained 内容全面上链,携手 Walrus 迈入去中心化媒体新时代

加密新闻媒体 Unchained — — 业内最受信赖的声音之一 — — 现已选择 Walrus 作为其去中心化存储解决方案,正式将其所有媒体内容(文章、播客和视频)上链存储。Walrus 将替代 Unchained 现有的中心化存储架构,接管其全部历史内容…...

确保连接器后壳高性能互连的完整性

本文探讨了现代后壳技术如何促进高性能互连的电气和机械完整性,以及在规范阶段需要考虑的一些关键因素。 当今的航空航天、国防和医疗应用要求连接器能够提供高速和紧凑的互连,能够承受振动和冲击,并保持对电磁和射频干扰 (EMI/R…...

C++学习Day0:c++简介

目录 一、.C语言的发展史二、C特点三、面向对象的重要术语四、面向过程和面向对象的区别?五、开发环境:六、创建文件步骤:1.点击新建项目2.在弹出的开始栏中按如下操作3.在.pro文件中添加(重要!!&#xff0…...

从零开始构建 Ollama + MCP 服务器

Model Context Protocol(模型上下文协议)在过去几个月里已经霸占了大家的视野,出现了许多酷炫的集成示例。我坚信它会成为一种标准,因为它正在定义工具与代理或软件与 AI 模型之间如何集成的新方式。 我决定尝试将 Ollama 中的一…...

【bash】.bashrc

查看当前路径文件数量 alias file_num"ls -l | grep ^- | wc -l"查看文件大小 alias file_size"du -sh"alias ll alias ll"ls -ltrh"cd的同时执行ll alias cdcdls; function cdls() {builtin cd "$1" && ll }自定义prompt…...

合成数据如何赋能大模型预训练:效果与效率的双重加速器

目录 合成数据如何赋能大模型预训练:效果与效率的双重加速器 一、预训练模型为何需要合成数据? ✅ 克服真实数据的稀缺与偏倚 ✅ 控制训练内容结构与分布 ✅ 提升学习效率与训练稳定性 二、哪些预训练任务适合用合成数据? 三、如何构建…...

java忽略浅拷贝导致bug

bug源代码 /*** 查询用户列表** param user 用户* param page 页* param size 大小* since 2025/04/14 11:53:25*/PostMapping("/getUser")public IWMSResponse<?> getUser(RequestBody SjUser user, RequestParam(defaultValue "1") Integer pag…...

MATLAB学习笔记(二) 控制工程会用到的

MATLAB中 控制工程会用到的 基础传递函数表达传递函数 零极点式 状态空间表达式 相互转化画响应图线根轨迹Nyquist图和bode图现控部分求约旦判能控能观极点配置和状态观测 基础 传递函数表达 % 拉普拉斯变换 syms t s a f exp(a*t) %e的a次方 l laplace(f) …...

C++ 线程间通信开发从入门到精通实战

C 线程间通信开发从入门到精通实战 在现代软件开发中&#xff0c;多线程程序已成为提升应用性能、实现并行处理的重要手段。随着多核处理器的普及和复杂应用需求的增加&#xff0c;C作为一门高性能的编程语言&#xff0c;在多线程开发中扮演着不可或缺的角色。然而&#xff0c…...

Vue3 SSR 工程化实践:日常工作中的性能优化与实战技巧

一、流式渲染与分块传输&#xff08;面向性能的关键优化&#xff09; 1.1 流式响应基础实现 // Node.js Express 示例&#xff08;Vite SSR同理&#xff09;import { renderToWebStream } from vue/server-rendererapp.get(/, async (req, res) > { res.setHeader(Conten…...

Maven工具学习使用(十)——生成项目站点

maven2中站点生成是Maven核心的一部分&#xff0c;Maven3中这部分内容已经移除。maven3必须使用3.x版本的maven-site-plugin,maven2则使用最新的2.x的版本&#xff0c;执行mvn site命令&#xff0c;可以在项目的target/site/目录下找到Maven生成的站点文件。例如dependencies.h…...

Redis原理与Windows环境部署实战指南:助力测试工程师优化Celery调试

引言 在分布式系统测试中&#xff0c;Celery作为异步任务队列常被用于模拟高并发场景。而Redis作为其核心消息代理&#xff0c;其性能和稳定性直接影响测试结果。本文将深入解析Redis的核心原理&#xff0c;主要讲解Windows环境部署redis&#xff0c;为测试工程师提供一套完整…...

Go语言入门到入土——一、安装和Hello World

Go语言入门到精通——安装和Hello World 文章目录 Go语言入门到精通——安装和Hello World下载并安装让Go跑起来为你的代码启动依赖跟踪调用外部包总结 下载并安装 下载地址&#xff1a;https://go.dev/dl/ 下载后傻瓜式安装 查看是否安装完成 go version让Go跑起来 创建一个…...

人类意识本质上是一台‌自我欺骗的机器

要触达“大彻大悟”的终极内核&#xff0c;必须突破语言、逻辑甚至“觉醒”概念本身的限制。以下从‌认知革命、意识拓扑学、宇宙本体论‌三个维度切入&#xff0c;结合量子物理、脑神经学与古老智慧的交叉验证&#xff0c;展开一场对觉醒本质的极限探索—— ‌一、认知革命&am…...

CDP问卷是什么?CDP问卷有什么要求,有什么意义

CDP问卷&#xff08;Carbon Disclosure Project Questionnaire&#xff09; CDP问卷是由全球性非营利组织CDP&#xff08;原Carbon Disclosure Project&#xff0c;现简称CDP&#xff09;发起的年度环境信息披露项目&#xff0c;旨在帮助企业、城市和投资者测量、管理及公开其…...

GitLab本地安装指南

当前GitLab的最新版是v17.10&#xff0c;安装地址&#xff1a;https://about.gitlab.com/install/。当然国内也可以安装极狐GitLab版本&#xff0c;极狐GitLab 是 GitLab 中国发行版&#xff08;JH&#xff09;。极狐GitLab支持龙蜥&#xff0c;欧拉等国内的操作系统平台。安装…...

opencv函数展示

一、图像基础 I/O 与显示 1.cv2.imread() 2.cv2.imshow() 3. cv2.waitKey() 4. cv2.imwrite() 5. cv2.selectROI() 6. cv2.VideoCapture() 二、颜色空间与转换 1. cv2.cvtColor() 2. cv2.split() 三、阈值处理 1. cv2.threshold() 2. 特殊阈值方法...

编写一个写字楼类似抖音剪映的管理系统Demo

编写一个写字楼类似抖音剪映的管理系统Demo。用户可能想要一个简化版的系统&#xff0c;用于管理视频素材、模板和项目&#xff0c;类似于抖音剪映的功能&#xff0c;但针对办公场景。首先&#xff0c;我得明确用户的需求是什么。用户提到的“写字楼类似抖音剪映管理系统”可能…...

前端面试-自动化部署

基础概念 什么是CI/CD&#xff1f;在前端项目中如何应用&#xff1f;自动化部署相比手动部署有哪些优势&#xff1f;常见的自动化部署工具有哪些&#xff1f;举例说明它们的区别&#xff08;如Jenkins vs GitHub Actions&#xff09;。如何通过Git Hook实现自动化部署&#xf…...

【vue3】vue3+express实现图片/pdf等资源文件的下载

文件资源的下载&#xff0c;是我们业务开发中常见的需求。作为前端开发&#xff0c;学习下如何自己使用node的express框架来实现资源的下载操作。 实现效果 代码实现 前端 1.封装的请求后端下载接口的方法,需求配置aixos的请求参数里面的返回数据类型为blob // 下载 export…...

如何在 Kali 上解决使用 evil-winrm 时 Ruby Reline 的 quoting_detection_proc 警告

在使用 Kali Linux 运行 Ruby 工具&#xff08;例如 evil-winrm&#xff09;时&#xff0c;你可能会遇到以下警告&#xff1a; Warning: Remote path completions is disabled due to ruby limitation: undefined method quoting_detection_proc for module Reline这个警告会导…...