坐标系
任何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分析的地方还是同一个地方。