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

坐标系

任何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.mzph.cn/news/694848.shtml

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

相关文章

11、内网安全-横向移动NTLM-Relay重放Responder中继攻击LdapEws

用途:个人学习笔记,有所借鉴,欢迎指正! 目录 前提知识: 一、横向移动-NTLM 中继攻击-Relay 重放-SMB 上线 1、CS权限转给MSF: 2、MSF: 3、添加路由: 4、smb_relay重发模块: 5、受控主机输…

【算法与数据结构】797、LeetCode所有可能的路径

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:有向无环图(Directed acyclic graph, DAG)是图论中的一个概念,它指…

2 Nacos适配达梦数据库实现方案

1、修改源代码方式 Nacos 原生是不支持达梦数据库的,所以就要想办法让它 “支持”,因为是开源软件,我们可以从源码入手,在流行的 1.x 、2.x 或最新版本代码的基本上进行修改。 主要涉及到以下内容的修改: com/alibaba/nacos/persistence/datasource/ExternalDataS

js谐音梗创意小游戏《望子成龙》

🌻 前言 龙年到来,祥瑞满天。愿您如龙般矫健,事业腾飞;如龙鳞闪耀,生活美满。祝您龙年大吉,万事如意! 龙年伊始,我给各位设计了一款原创的小游戏,话不多说,直…

智能测径仪 针对设备自身抖动都做了哪些创新加强设计

关键字:测径仪外壳设计,测径仪内部结构,外壳刚性振动,产线共振现象,镜头纯手工擦拭清洗,测径仪智能防抖算法,测径仪多重防抖技术,测径仪防抖技术,测径仪自身防抖, 在生产过程中,被测物不可避免的会发生抖动,测径仪本身也会产生抖动,只是抖动幅…

Google插件Sider: ChatGPT Sidebar + GPTs GPT-4 Turbo Sider

Sider: ChatGPT Sidebar 可以使得满屏都是机器人,左侧栏可以打开访问GPT-4. 配置跳板机地址 google 搜索的右侧也有打开

政安晨:【示例演绎机器学习】(一)—— 剖析神经网络:学习核心的Keras API

打开这篇文章,相信您已经了解了TensorFlow的一些基础知识,可以用它从头开始实现一个简单模型。 如果您对这些概念还不是太清晰,可以浏览一下我这个栏目中的相关文章: 政安晨的机器学习笔记http://t.csdnimg.cn/DHcyL 尤其是其中…

利用LaTex批量将eps转pdf、png转eps、eps转png、eps转svg

1、eps转pdf 直接使用epstopdf命令(texlive、mitex自带)。 在cmd中进入到eps矢量图片的目录,使用下面的命令: for %f in (*.eps) do epstopdf "%f" 下面是plt保存eps代码: import matplotlib.pyplot as…

网络编程知识整理

目录 1.1 引言 1.2 分层 1.3 TCP/IP的分层 1.4 互联网的地址 1.5 域名服务 1.6 封装 1.7 分用 1.8 端口号 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但 T C P / I P协议族允许它们互相进行通信。这一点很让人感…

消息中间件-面试题

MQ选择 一、Kafka 1、消息队列如何保证消息可靠性 消息不重复 生产者控制消费者幂等消息不丢失 生产者发送,要确认broker收到并持久化broker确认消费者消费完,再删除消息2、kafka是什么 Kafka是一种高吞吐量、分布式、基于发布/订阅的消息中间件,是Apache的开源项目。broke…

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

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

AOSP10 替换系统launcher

本文实现将原生的launcher 移除&#xff0c;替换成我们自己写的launcher。 分以下几个步骤&#xff1a; 一、新建一个自己的launcher项目。 1.直接使用android studio 新建一个项目。 2.修改AndroidManifest.xml <applicationandroid:persistent"true"androi…

xxl-job架构原理讲解

1、调度中心 调度中心是一个单独的Web服务&#xff0c;主要是用来触发定时任务的执行 它提供了一些页面操作&#xff0c;我们可以很方便地去管理这些定时任务的触发逻辑 调度中心依赖数据库&#xff0c;所以数据都是存在数据库中的 调度中心也支持集群模式&#xff0c;但是…

mybatis数据操作语句

//基于注解 Mapper public interface reboudapt {Select("select * from dept")List<dept> huoqudept();//删除语句Delete("delete from dept where id #{id}")void deletesc(Integer id);//增加语句Insert("insert into dept(name, create_t…

Docker镜像加速

前言 众所周知&#xff0c;我们常用的一些工具或系统的下载源都是国外的&#xff0c;这就会导致我们在下载一些东西时&#xff0c;会导致下载巨慢或者下载失败的情况&#xff0c;下面便是docker换下载源的教程 镜像加速 下面是几个常用的国内的镜像 科大镜像&#xff1a;ht…

transformer,视觉模型改进论文的讨论

1、efficientVIT efficientformer 模型 快48.9倍的新SAM&#xff01;清华&MIT&英伟达开源EfficientViT-SAM&#xff1a;精度不变&#xff0c;原地起飞 YOLOv8改进 | 2023主干篇 | EfficientViT替换Backbone&#xff08;高效的视觉变换网络&#xff09; - Snu77的文章 -…

BTC系列-系统学习铭文(一)-比特币上的NFT

Ordinals协议概况 开源项目: https://github.com/ordinals/ord铭文浏览器: https://Ordinals.com关于Ordinals的BIP: https://github.com/ordinals/ord/blob/master/bip.mediawiki序数理论手册: https://docs.ordinals.com/overview.html 所需的技术积累 Ordinals NFTs 是基…

Wireshark过滤DNS协议包语法实战

背景 现网DNS服务器发现CPU突增&#xff0c;发现有可能是客户恶意发起的随机子域名扫描&#xff0c;对服务器进行抓包分析&#xff0c;记录下当时的操作。 抓包 执行命令 tcpdump -iany port 53 and host $ip -nnv -w $ip.pcap进行抓包导出到本地&#xff0c;使用Wireshark进…

人工智能|深度学习——基于数字图像处理和深度学习的车牌定位

1.研究背景及研究目的和意义 车牌识别Vehicle License Plate Recognition VLPR) 是从一张或一系列数字图片中自动定位车牌区域并提取车牌信息的图像识别技术。车牌识别 以数字图像处理、模式识别、计算机视觉等技术为基础&#xff0c;是现代智能交通系统的重要组成部分&#xf…

C#知识点-16(计算器插件开发、事件、递归、XML)

计算器插件开发 1、Calculator.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Calculator_DLL {//用来明确所有插件开发人员的开发规范public abstract class Calculator{public int N…