VisionPro坐标空间树实战:从Blob分析到尺寸测量的坐标系转换技巧
在工业视觉项目的日常开发中,我们常常会遇到一个看似简单却极易引发混乱的问题:一个测量结果,比如一个圆心的位置,它到底是在哪个坐标系下?是相对于图像左上角的像素坐标,还是经过标定后的毫米坐标?当项目流程复杂,多个视觉工具(如定位、Blob分析、测量工具)串联工作时,如果坐标系没有理清,轻则导致测量结果偏差,重则让整个自动化流程失效。VisionPro作为一款强大的机器视觉开发平台,其内置的坐标空间树(Coordinate Space Trees) 机制,正是为解决这类问题而生的精妙设计。它不是一个抽象的概念,而是贯穿于从图像采集到结果输出的每一个环节,是连接“像素世界”与“物理世界”的桥梁。
理解并熟练运用坐标空间树,意味着你能在复杂的多工具协作中,游刃有余地进行数据转换,确保每个环节的测量结果都在正确的“语境”下。无论是处理一幅未经处理的原始图像进行斑点(Blob)分析,还是将测量到的像素距离转换为实际的毫米尺寸,坐标空间树都提供了清晰、一致的转换路径。本文将抛开枯燥的理论罗列,直接切入工业现场最常见的两个场景——Blob分析和尺寸测量,通过具体的代码和配置案例,展示如何驾驭这颗“空间树”,实现坐标系间的自由穿梭,从而提升视觉系统的鲁棒性和开发效率。
1. 坐标空间树:VisionPro中的空间导航图
初次接触VisionPro的坐标空间树,可能会被Root Space、User Space、Selected Space这些术语绕晕。我们可以把它想象成一张多层地图。你手中有一张卫星拍摄的原始照片(像素空间),但这张照片是歪的,且没有比例尺。你需要在这张原始照片上,依次叠加标注出“工厂区域图”(一个用户空间)、“装配车间平面图”(另一个用户空间)。坐标空间树就是管理这些层层叠加地图的索引系统。
1.1 核心空间概念解析
在VisionPro的体系里,一幅图像(CogImage8Grey或CogImage24PlanarColor等)一旦被创建,就自动携带了一棵坐标空间树。这棵树至少包含一个根节点。
- 根空间(Root Space):这是所有空间转换的绝对参考系。一个常见的误解是认为根空间就是像素空间(以图像左上角为原点(0,0),X轴向右,Y轴向下)。实际上,根空间是VisionPro对像素空间进行了一些内部标准化处理后的结果。对于绝大多数应用,你可以近似认为根空间与像素空间在数值上是对齐的,但理论上它更稳定。在代码中,我们用符号
"@"来指代根空间。 - 用户空间(User Space):这是用户(开发者)通过工具创建的空间。例如,你使用
CogCalibCheckerboardTool(棋盘格标定工具)对图像进行标定,该工具就会生成一个名为“Checkerboard Calibration”的用户空间。在这个空间里,坐标单位可能是毫米,原点可能在棋盘格的某个角点上。用户空间是通过一个或多个数学变换(仿射变换、透视变换等)与根空间(或其他用户空间)关联起来的。 - 选中空间(Selected Space):这是当前激活的上下文。任何一个VisionPro工具(如
CogBlobTool,CogCaliperTool)运行时,它都在某一个特定的坐标空间下进行计算。这个空间就是选中空间。工具输出的所有位置、尺寸结果,其坐标值都是相对于这个选中空间的。在QuickBuild或ToolBlock中,每个工具都有一个Space属性,用于设置其选中空间。
注意:用户空间的命名需要保持唯一性。同一幅图像经过不同工具处理,如果都创建新空间,切忌使用相同的名称,否则会引起混淆或覆盖。

4245

被折叠的 条评论
为什么被折叠?



