CogFixtureTool(坐标系、校正与定位)

news2024/11/18 16:23:42

坐标系

任何VisionPro图像都支持一组坐标空间,为表达特定特征的位置提供数字框架。最有用的空间是根空间和用户空间,根空间将点与原始获取图像中的像素相关联,用户空间用于获得校准和固定空间中的特征位置和测量值。 

根空间

图像的根空间是在任何图像处理之前与所获取图像的像素完全对齐的左手坐标系。根空间的原点(0,0)通常位于图像的左上像素的左上角。正x轴向右延伸,而正y轴向下延伸。下图显示了一个根空间覆盖为红色的图像。 

在获取的图像中,根空间坐标网格定义图像像素之间的边界。任何特征的位置都可以用网格中的(X,Y)值来描述。当采集的图像经过改变图像中像素总数的图像处理操作(二次采样、形态学)时,VisionPro会自动重新调整根空间,使处理后的图像中的特征具有相同的根空间坐标位置。下图显示了通过二次采样缩小尺寸后的同一图像。 

 

在图像处理之后,根空间坐标网格不再与像素边界相对应。VisionPro自动调整根空间,使图像特征(如“COGNEX”中的“C”)保持相同的坐标位置。 

 用户空间 

VisionPro校准和固定工具创建用户空间,在图像的根空间之外定义任意数量的额外坐标系。使用的工具确定了它的利手和单位,并确定了它与根空间的关系。下图显示了添加到所获取图像的根空间的用户空间。 

在这种情况下,用户空间是一个右手坐标系,其原点位于“COGNEX”文本的底部。单个功能具有不同的坐标空间位置,具体取决于您考虑的空间。每个用户空间都有一个唯一的名称,您的应用程序可以使用该名称来确定VisionPro用于报告工具结果的空间。与图像相关联的所有用户空间都存储在坐标空间树中  。

像素空间 

像素空间类似于根空间,只是VisionPro不会对其进行调整以反映图像处理操作的效果。像素空间的原点始终是左上像素的左上角。如果对图像进行二次采样,则特征在二次采样图像的像素空间中的位置将与在原始图像像素空间中不同。通常,像素空间很少对应用程序有用,尽管它在指定要显示的图形时可能很有用。 

还有一个东西:坐标空间树!在很多工具的区域选择的时候,通常需要考虑坐标空间树。

校正与固定

 在VisionPro中,每个图像都有一个相关的坐标空间树,您可以根据视觉应用程序的需要定义任意多的坐标空间。每个坐标空间都是通过二维变换相对于现有坐标空间指定的。坐标空间树为VisionPro工具提供了将应用程序中的坐标空间与图像中的像素或真实世界位置关联起来所需的信息。校准和固定都涉及计算定义新坐标空间的2D变换,然后将所得坐标空间附加到每个运行时图像的坐标空间树。 

校正

许多视觉应用程序要求您以有意义的真实世界值报告测量值和位置。校准包括计算将图像坐标映射到真实世界坐标的二维变换,然后将此预先计算的坐标空间附加到每个运行时图像的坐标空间树。运行时图像中的视觉工具可以以校准单位报告其结果。

固定 (Fixturing)

固定是一个分两步进行的过程,包括: 定义新的坐标空间和将空间附加到输入图像的坐标空间树 ;

可以定义任意数量的特定于应用程序的坐标空间系统。这些系统中的大多数与物理测量单位或校正光学失真无关;它们只是为了方便您编写视觉应用程序。在使用像CogCaliperTool这样的视觉工具进行后续测量之前,您经常进行。例如,假设您的应用程序通过测量每个括号上两条边之间的距离来确保正确生成括号。支架在传送带上移动到摄像机视图中。您已经校准了系统,可以将图像映射到真实世界的位置。您希望使用卡尺工具进行测量,但在获取图像时,每个支架可能有不同的位置或旋转。您希望创建一个自定义坐标空间,该空间随每个图像中的每个新括号移动,这样您就可以使用卡尺测量括号边缘。 

非固定坐标空间和固定坐标空间  

所有固定操作至少使用未固定和固定的坐标空间。这些空间描述如下:

1、未固定的空间是输入图像的选定空间。

2、固定空间是一个坐标空间,通常与图像中的一些众所周知的特征对齐并在概念上附着于这些特征。

您可以定义固定空间,以便更方便地放置视觉工具或进行测量。最终的固定空间由2D变换表示,该变换将点从固定坐标空间映射到非固定空间。  

CogFixture工具 

CogFixtureTool非常简单。若要使用它,您必须已经获得了一个转换,该转换定义了相对于非固定空间的固定空间。该工具在运行时执行两项任务:

1、 将固定坐标空间添加到输入图像的坐标空间树

2、创建输出图像供其他工具使用要完成第一步

请向工具提供以下信息:固定空间的非限定坐标空间名称;输入图像;以及2D变换,所述2D变换定义相对于所述非固定空间的固定空间。可以从其他视觉工具(如PMAlign)的输出中获得二维变换。  

该工具采用InputImage中未固定的空间的名称;它不是工具或运行时参数的属性。

在第二步中,该工具创建一个新的输出图像,该图像与输入图像共享相同的像素和坐标空间树。此图像与输入图像相同,只是它是一个新的COM对象,并且可能具有不同的SelectedSpaceName。输出图像的SelectedSpaceName是未固定的空间或固定空间的名称,具体取决于工具的SpaceToOutput属性的值。该名称始终是完全限定的空间名称。 

通常会利用其固定的功能!

举个栗子:

因为每一次机器人取物件来拍照的位置并不是完全固定的(多多少少有几个像素的偏差),假如我们想要对物件的某一个位置使用blob工具分析,我们就需要使用到CogFixtureTool和CogPMAlignTool,CogPMAlignTool用于模板匹配特征,返回给CogFixtureTool一个二维变换关系(就是图中的GetPose()),  CogFixtureTool就可以把当前拍照的图片固定到之前模板的那张图片,这样blob进行分析的时候,尽管物件位置有偏移,blob分析的地方还是同一个地方。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python统计分析——使用AIC进行模型选择

参考资料:用python动手学统计学 1、导入库 # 导入库 # 用于数值计算的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 用于绘图的库 import matplotlib.pyplot as plt import seaborn as sns sns.set() # 用于估计统计…

C++医学临床影像信息管理系统源码

一、医学影像信息系统概述 在现代医疗行业中,医学影像信息系统包括RIS,按照DICOM3.0国际标准设计,是由高性能服务器、网络和存储设备组成的硬件支撑平台,以大型关系数据库作为数据和影像的存储和管理工具,以医学影像的…

USB基础概念介绍

一. usb是什么 Universal Serial Bus,简称 USB,是一种串口总线的标准,在现实中频繁应用于 3C 数码产品,电脑、手机、打印机、游戏机等,被称为万能接口,目前已经发展为行业标准。 二、usb传输标准 自1996…

navicat连接云服务器(宝塔)

下面介绍两种navicat连接云服务器(宝塔)的方法 一、通过ssh配置(安全) 打开navicat,配置新链接的SSH(主机:填写公网IP,用户名和密码是服务器的账号密码) 在常规填写数据…

智慧城市环卫车辆监控管理方案

二.方案设计 智慧城市环卫系统主要包括以下几个方面: 1、通过 RFID 实时自动采集功能,自动统计了解各处垃圾桶每天清理情况; 2、GPS 与 DTU 透传相结合,实时掌握保洁及垃圾车辆的工作状态, 行驶路线以及任…

C 嵌入式系统设计模式 08:硬件代理模式

本书的原著为:《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》,讲解的是嵌入式系统设计模式,是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述访问硬件的设计模式之一&…

ElasticStack安装(windows)

官网 : Elasticsearch 平台 — 大规模查找实时答案 | Elastic Elasticsearch Elastic Stack(一套技术栈) 包含了数据的整合 >提取 >存储 >使用,一整套! 各组件介绍: beats 套件:从各种不同类型的文件/应用中采集数据。比如:a,b,cd,e,aa,bb,ccLogstash:…

堆的结构实现与应用

目录 前言: 1.认识堆 a.如何认识堆? b.大根堆与小根堆 c.堆应用的简单认识 2.堆的结构与要实现的功能 3.向上调整算法 4.向下调整算法 5.向堆插入数据并建堆 6.堆的大小 7.堆的判空 8.取堆顶数据 9.删除堆顶数据 10.向上调整时间复杂度 11.向下调整时…

Js如何判断两个数组是否相等?

本文目录 1、通过数组自带方法比较2、通过循环判断3、toString()4、join()5、JSON.stringify() 日常开发,时不时会遇到需要判定2个数组是否相等的情况,需要实现考虑的场景有: 先判断长度,长度不等必然不等元素位置其他情况考虑 1…

jmeter下载base64加密版pdf文件

一、何为base64加密版pdf文件 如下图所示,接口jmeter执行后,返回一串包含大小写英文字母、数字、、/、的长字符串,直接另存为pdf文件后,文件有大小,但是打不开;另存为doc文件后,打开可以看到和…

Docker技术仓库

数据卷 为什么用数据卷? 宿主机无法直接访问容器中的文件容器中的文件没有持久化,导致容器删除后,文件数据也随之消失容器之间也无法直接访问互相的文件 为解决这些问题,docker加入了数据卷机制,能很好解决上面问题…

MT8788|MTK8788安卓核心板参数_4G联发科MTK模块

MT8788核心板是一款功能强大的4G全网通安卓智能模块。该模块采用了联发科AIOT芯片平台,具有长达8年的生命周期。MT8788模块内置了12nm制程的八核处理器,包括4个Cortex A73和4个Coretex A53,主频最高可达2.0GHZ。标配内存为4GB64GB&#xff0c…

Github 2024-02-22 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-02-22统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4非开发语言项目2Go项目2HTML项目1Dart项目1Vue项目1JavaScript项目1TypeScript项目1 《Hello 算法…

HarmonyOS开发技术全面分析

系统定义 HarmonyOS 是一款 “ 面向未来 ” 、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够…

node版本管理工具之nvm的安装和使用

一、nvm的介绍 1,什么是nvm? nvm是Node Version Manager的简称,即为node版本管理工具 2,为什么要选择使用nvm? nodejs使用的场景越来越多,因为是开源软件,具备大多数开源软件都存在的"…

测试多线程架构的问题

在测试多线程架构时,需要考虑多个方面以确保系统的稳定性和性能。以下是一些关键问题,需要在测试过程中特别关注: 线程同步 多线程环境中,线程同步是非常重要的问题。由于多个线程可能同时访问共享资源,因此需要使用…

启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000

启动node服务报错: 解决方案: 将监听端口改成3000或者其他 修改后结果: 参考原文: Error: listen EACCES: permission denied_error when starting dev server: error: listen eacc-CSDN博客

git版本回退在eclipse和命令中的操作

一.背景 老程序员了,熟悉eclipsesvn,git用的不溜。近几年用了git,偶尔修改了某个文件希望放弃本次修改重新恢复到最新版本重新修改。或者回退到某个版本,再修改。记录一下Eclipse中的操作,和命令操作的情况。 二.Ecli…

六、回归与聚类算法 - 线性回归

目录 1、线性回归的原理 1.1 应用场景 1.2 什么是线性回归 1.2.1 定义 1.2.2 线性回归的特征与目标的关系分析 2、线性回归的损失和优化原理 2.1 损失函数 2.2 优化算法 2.2.1 正规方程 2.2.2 梯度下降 3、线性回归API 4、回归性能评估 5、波士顿房价预测 5.1 流…

Java 注解机制解密并发编程的时间之谜:揭开Happens-Before的神秘面纱

优质博文:IT-BLOG-CN 一、简介 为什么需要happens-before原则: 主要是因为Java内存模型 , 为了提高CPU效率,通过工作内存Cache代替了主内存。修改这个临界资源会更新work memory但并不一定立刻刷到主存中。通常JMM会将编写的代码…