Coordinate Spaces

本主题包含以下部分:

  • 根空间

  • 用户空间

  • 像素空间

任何VisionPro图像支持一系列坐标空间,以提供一个数值框架来表达特定特征的位置。最有用的空间是根空间,它将点与原始获取图像中的像素相关联,以及用户空间,用于在标定和固定的空间中获取特征位置和测量值。

根空间

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

下图展示了一个图像,并在图像上叠加了红色的根空间。

在获取的图像中,根空间坐标网格定义了图像像素之间的边界。任何特征的位置都可以用网格中的 (X, Y) 值来描述。

当获取的图像经历图像处理操作(如降采样、形态学处理)导致图像中像素总数发生变化时,VisionPro 会自动重新调整根空间,以确保处理后的图像中的特征具有相同的根空间坐标位置。

下图展示了经过降采样缩小后的相同图像。

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

用户空间

VisionPro 校准和夹具工具创建用户空间,这些空间定义了图像根空间之外的任意数量的附加坐标系统。所使用的工具决定了用户空间的坐标系统的方向和单位,并确定它如何与根空间相关联。

下图展示了一个添加到获取图像根空间中的用户空间。

在这种情况下,用户空间是一个右手坐标系统,其原点位于“COGNEX”文本的底部。一个特征在不同的坐标空间中具有不同的坐标位置。

每个用户空间都有一个唯一的名称,您的应用程序可以使用这个名称来确定 VisionPro 用于报告工具结果的空间。与图像相关联的所有用户空间都存储在一个坐标空间树中。

像素空间

像素空间类似于根空间,但 VisionPro 不会调整它以反映图像处理操作的效果。像素空间的原点始终是左上角的第一个像素的左上角。如果对图像进行子采样,特征在子采样图像的像素空间中的位置将与在原始图像的像素空间中的位置不同。

一般来说,像素空间在应用中很少有用,尽管在指定显示图形时可能会有用。

Coordinate Spaces的更多相关文章

  1. Blink Coordinate Spaces

    Blink Coordinate Spaces Blink Coordinate Spaces Types of Zoom There are two types of zoom in Chromiu ...

  2. OpenCASCADE Coordinate Transforms

    OpenCASCADE Coordinate Transforms eryar@163.com Abstract. The purpose of the OpenGL graphics process ...

  3. OpenCASCADE Camera

    OpenCASCADE Camera eryar@163.com Abstract. OpenCASCADE introduce a new class Graphic3d_Camera for th ...

  4. 孙鑫MFC学习笔记11:保存图像

    1.CPtrArray指针数组 2.CPtrArray返回void指针,需要做类型转换 3.View类中的OnPaint调用OnPrepareDC和OnDraw,如果覆盖OnPaint,就不会调用On ...

  5. golang.org/x/mobile/exp/gl/glutil/glimage.go 源码分析

    看这篇之前,建议先看之前几篇,这几篇是基础. Go Mobile 例子 basic 源码分析 http://www.cnblogs.com/ghj1976/p/5183199.html OpenGL ...

  6. 图形变幻矩阵 Transforms

    https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d ...

  7. Foundations of Game Engine Development Volume 1 Mathematics (Eric Lengyel 著)

    http://www.foundationsofgameenginedev.com/ Chapter1 Vectors and Matrices (已看) Chapter2 Transforms (已 ...

  8. Game Engine Architecture 6

    [Game Engine Architecture 6] 1.Data-Parallel Computations A GPU is a specialized coprocessor designe ...

  9. Input Team

    The Chromium Input team (aka input-dev) is a web platform team focused on making touch (P1) and othe ...

  10. Layout Team

    The layout team is a long-term engineering team tasked with maintaining, supporting, and improving t ...

随机推荐

  1. JDK 18 最新动态和 JDK 19 新特性预测

    JDK 18 最新动态和 JDK 19 新特性预测_语言 & 开发_Michael Redlich_InfoQ精选文章 里面提到文章 定界延续(delimited continuations) ...

  2. AOP中动态代理详解

    动态代理概述 什么是代理 代理模式(Proxy pattern): 为另一个对象提供一个替身或占位符以控制对这个对象的访问 什么是动态代理? 动态代理就是,在程序运行期,创建目标对象的代理对象,并对目 ...

  3. 【C语言】【二级】移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p的数组元素平移到数组的最后

    题目 请编写函数fun,函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(含p, p小于等于n-1)的数组元素平移到数组的最后. 例如,一维数组中的原始内容为:1,2,3,4 ...

  4. 【数据库】MySQL的一些基础知识

    ALTER TABLE 表名 DROP 属性名 删除数据表 DROP TABLE 数据库名.表名; 用户管理 创建用户 CREATE USER 'username'@'host' IDENTIFIED ...

  5. Jenkins入门使用

    Jenkins入门使用 1先安装jdk才能运行jenkins yum install -y java-1.8.0-openjdk.x86_64 2 安装jenkins,运行,进行端口绑定,启动jenk ...

  6. [转]Clion中如何使用矩阵库eigen

    CMakelist文件内容如下: cmake_minimum_required(VERSION 3.2) project(PISO) set(CMAKE_CXX_STANDARD 14) includ ...

  7. Verilog4_时序逻辑电路

    时序逻辑电路概述 时序逻辑电路分类: 按照触发器的动作特点: 同步时序逻辑电路: 所有触发器的状态变化都是在同一个时钟信号作用下同时发生的 异步时序逻辑电路: 没有统一的时钟脉冲信号,各触发器状态的变 ...

  8. JuiceFS 2024:开源与商业并进,迈向 AI 原生时代

    即将过去的 2024 年,是 JuiceFS 开源版本推出的第 4 年,企业版的第 8 个年头.回顾过去这一年,JuiceFS 社区版依旧保持着快速成长的势头,GitHub 星标突破 11.1K,各项 ...

  9. Solution Set - “请背诵每条魔法的禁忌”

    目录 0.「HAOI 2018」「洛谷 P4494」反色游戏 1.「JSOI 2010」「洛谷 P6029」旅行 2.「CTSC 2017」「洛谷 P3774」最长上升子序列 3.「CTSC 2018 ...

  10. 基于Qt的OFD阅读器开发原理与实践

    摘要 本文详细探讨了基于Qt开发OFD阅读器的原理与实践.通过解析OFD文件格式.构建文档结构.实现页面渲染.处理用户交互以及进行性能优化,本文展示了如何使用Qt框架开发一个功能强大.性能优异的OFD ...