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

Halcon 5分钟学会9点标定 带图片示例、示例源码

9点标定应用流程

前置条件,相机焦距,视野固定高度和角度,光源光强度固定。

  1. 移动机械手,使用螺丝批头,在视野范围内的白纸上,点九个点,记录每个点位的位置,每个点位的顺序要和图像上获取的圆心数组顺序一致,此时得到9个点的世界坐标,x和y
  2. 位置记录完成后,机械手返回拍照位置。将步骤1中,9个点图片拍摄下来。
  3. Halcon 导入图片,对图片进行操作
    • 灰度化
    • 灰度筛选
    • 填充圆中缺失
    • 开操作,将圆形分离出来
    • 根据类圆特征获取圆形
    • 对获取到的每个圆形进行获取其最小外接圆,生成圆心坐标和半径
  4. 已知机械(世界坐标)和图片上的点位(像素坐标),根据公式得出偏移对象
  5. 后续根据实际图片中定位的目标像素坐标,和偏移图像,即可换算出机械手应该移动的实际机械坐标。

示例图片
请添加图片描述

dev_set_color('red')
read_image (Image, 'O:/草稿/test.jpg')rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Regions, 13, 71)*填充缺失
fill_up_shape (Regions, WiresFilled, 'area', 1, 100)*开操作 腐蚀和膨胀的结合,即先腐蚀后膨胀
opening_circle (WiresFilled, Balls, 15.5)connection (Balls, SingleBalls)*找到具有目标特征的形状,这边填写的参数是 ‘circularity’ ,就是类圆的图形;
select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.85, 1.0)*确定这些圆形区域的最小外接圆,并将输出的坐标和半径做处理后输出
smallest_circle (SingleBalls, Row, Column, Radius)*生成 虚拟机械坐标 行往下偏移80
WorldRow := []
WorldCol :=[]for Index := 0 to |Row|-1 by 1WorldRow[Index] := Row[Index]+80WorldCol[Index] := Column[Index]gen_circle (Circle, WorldRow[Index], WorldCol[Index], 10)
endfor*生成标定
vector_to_hom_mat2d (Row, Column, WorldRow, WorldCol, HomMat2D1)*设置目标机械坐标
gen_circle (Circle, 20, 100, 10)*坐标转换  (Row3,Column3)像素坐标点位, (Qx,Qy)转换后的世界坐标
affine_trans_point_2d (HomMat2D1, 20, 100, Qx, Qy)dev_set_color('green')
gen_circle (Circle, Qx, Qy, 10)

结果,红色大圆圈为像素坐标,红色小圆圈为机械坐标位置,绿色为目标实际机械坐标位置
在这里插入图片描述

相关文章:

Halcon 5分钟学会9点标定 带图片示例、示例源码

9点标定应用流程 前置条件,相机焦距,视野固定高度和角度,光源光强度固定。 移动机械手,使用螺丝批头,在视野范围内的白纸上,点九个点,记录每个点位的位置,每个点位的顺序要和图像上获…...

【非监督学习 | 聚类】聚类算法类别大全 距离度量单位大全

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...

案例026:基于微信的原创音乐小程序的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…...

网络运维与网络安全 学习笔记2023.11.26

网络运维与网络安全 学习笔记 第二十七天 今日目标 NAT场景与原理、静态NAT、动态NAT PAT原理与配置、动态PAT之EasyIP、静态PAT之NAT Server NAT场景与原理 项目背景 为节省IP地址和费用,企业内网使用的都是“私有IP地址” Internet网络的组成设备&#xff0c…...

STM32使用多路PWM注意事项

这是使用CubeMX自动产生的代码,使用TIM2产生了PA0,PA1,PA2,PA3这4路PWM,可以看到里面Pulse是共同使用了一个sConfigOC,如果是需要动态调整Pulse,就需要特别注意。 如果是用来产生呼吸灯,就会把这4个PWM都打乱,我觉得&a…...

汽车转向桥设计转向节转向桥机械设计

wx供重浩:创享日记 对话框发送:转向桥 获取完整报告说明书工程源文件 转向节图 装配图 本文设计的是JY1061A型采用前置后轮驱动的载货汽车转向桥,因此该转向桥为从动桥。从动桥的功用:从动桥也称非驱动桥,又称从动车轴…...

前端实现埋点

前端实现埋点 如何去了解用户呢?最直接有效的方式就是了解用户的行为,了解用户在网站中做了什么,呆了多久。而如何去实现这一操作,这就涉及到我们前端的埋点了。 埋点方式 什么是埋点? 所谓埋点是数据采集领域&…...

Apache多后缀解析漏洞分析

漏洞介绍 该漏洞与用户的配置有密切的关系,严格来说属于用户配置问题。Apache文件解析漏洞涉及到 Apache 解析文件的特性。在默认情况下,Apache 允许一个文件具有多个以点分割的后缀,在处理文件时会从右向左识别后缀名。(就是右边的后缀名无法识别,则继续识别左边的) 如果…...

基于Loki + Promtail + Grafana 搭建 Nginx 日志监控

文章目录 引言第一部分:Loki 简介与安装1.1 Loki 简介1.2 Loki 安装1.2.1 下载 Loki1.2.2 安装 Loki 1.3 启动 Loki 第二部分:Promtail 简介与安装2.1 Promtail 简介2.2 Promtail 安装2.2.1 下载 Promtail2.2.2 安装 Promtail 2.3 启动 Promtail 第三部分…...

车载通信架构 —— 传统车内通信网络CAN(可靠性为王)

车载通信架构 —— 传统车内通信网络CAN(可靠性为王) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非…...

visual Studio MFC 绘制单一颜色三角形、渐变颜色边框三角形、渐变填充三角形、边框渐变的正方形与填充渐变的正方形实例

MFC 绘制三角形 本文使用visual Studio MFC 平台实现绘制单一颜色三角形、渐变颜色边框三角形、渐变填充三角形、边框渐变的正方形与填充渐变的正方形. 关于基础工程的创建请参考Visual Studio 使用MFC 单文档工程绘制单一颜色直线和绘制渐变颜色的直线 文章目录 MFC 绘制三角形…...

嵌入式八股 | 笔试面试 | 校招秋招 | 题目精选

嵌入式八股精华版1.0所有216道题目如下: 欢迎关注微信公众号【赛博二哈】并加入嵌入式求职交流群。提供简历模板、学习路线、岗位整理等 欢迎加入知识星球【嵌入式求职星球】获取完整嵌入式八股。 提供简历修改、项目推荐、求职规划答疑。另有各城市、公…...

力扣:180. 连续出现的数字(Python3)

题目: 表:Logs ---------------------- | Column Name | Type | ---------------------- | id | int | | num | varchar | ---------------------- 在 SQL 中,id 是该表的主键。 id 是一个自增列。 找出所有至少连续…...

【Python篇】详细讲解正则表达式

文章目录 🌹什么是正则表达式🍔语法字符类别重复次数组合模式 ✨例子 🌹什么是正则表达式 正则表达式(Regular Expression),简称为正则或正则表达式,是一种用于匹配、查找和操作文本字符串的工…...

Linux系统分区和挂载超过2T的硬盘

报错信息:DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT). 转载:Ubuntu(Linux)系统安装扩展硬盘并完成格式化及挂载 - 知乎...

Vue19 列表过滤

直接上代码 以下代码使用了两种实现方式&#xff0c;监视属性和计算属性 当能用计算属性实现时&#xff0c;推荐使用计算属性 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>列表过滤</title><script type&q…...

【一起来学kubernetes】7、k8s中的ingress详解

引言配置示例负载均衡的实现负载均衡策略实现模式实现方案Nginx类型Ingress实现Treafik类型Ingress实现HAProxy类型ingress实现Istio类型ingress实现APISIX类型ingress实现 更多 引言 Ingress是Kubernetes集群中的一种资源类型&#xff0c;用于实现用域名的方式访问Kubernetes…...

[Java] 阿里一面~说一下ArrayList 与 LinkedList 区别

文章目录 是否保证线程安全底层数据结构插入和删除是否受元素位置的影响是否支持快速随机访问内存空间占用&#xff1a; 是否保证线程安全 ArrayList 和 LinkedList 都是不同步的&#xff0c;也就是不保证线程安全&#xff1b; 底层数据结构 ● ArrayList 底层使用的是 Obje…...

凸包问题的GRAHAM-SCAN解法 open3d c++ 代码

使用了Open3D库进行点云处理和可视化。下面是代码的大致解释: 引入必要的头文件和命名空间: 定义了三个函数: ComputeTriangleDirArea:计算带符号三角形的面积。Compute2Ddistance:计算两点之间的平面距离。GetConvexHullByGrahamScan:通过Graham Scan方法计算凸包点集。…...

从微软Cosmos DB浅谈一致性模型

最近回顾了微软的Cosmos DB的提供一致性级别&#xff0c;重新整理下一致性模型的相关内容。 0. Cosmos DB Cosmos DB&#xff08;Azure Cosmos DB&#xff09;是由微软推出的一个支持多模型、多 API 的全球分布式数据库服务。它旨在提供高度可扩展性、低延迟、强一致性和全球…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...