图像处理、分析与机器视觉
上QQ阅读APP看书,第一时间看更新

4.5 无损图层

无论正在调试还是最终部署的机器视觉系统,将图像处理的结果显示给用户都极为重要。为了能让用户更简单直接地理解计算后得到的结果,通常希望在不改变图像处理结果的前提下为图像显示添加文本、点、线或其他复杂几何形状和位图,对图像进行注释。Nondestructive Overlay正是为此目的而设计的图像注释工具,它可用于提示用户某幅图像中检测到的目标、以文本和几何图形等方式定性或定量描述处理结果或显示图像窗口的网格等。

为图像添加的图层虽然可以与图像一起在窗口中显示,但它们一般并不会更改图像数据的值。图4-46显示了无损图层的工作原理。可以看出图像数据与图层数据实际上相对独立存放,因此除非将图像数据与图层合并,否则它们之间将互不干扰。

图4-46 图层原理

NI Vision提供了功能丰富的图层处理VI,包括为图像显示添加各种几何形状图层(点、线、矩形、椭圆、弧形等)或文本、位图类型的图层VI,清除、复制或合并图层到图像中的图层操作VI,获取或设置图像变换时图层变换方式的VI,以及读写包括图像数据和机器视觉信息的图像文件VI等。这些VI位于LabVIEW的Vision and Motion→Vision Utilities→Overlay函数选板中,如图4-47所示。

图4-47 图层操作VI

此外,图像中如果包含无损图层等机器视觉系统信息,则它只能保存在PNG格式的文件中。为方便操作,NI Vision为包含机器视觉系统信息的图像读写提供了专门的VI。

表4-17列出了NI Vision的无损图层操作VI,并重新对其进行了分类描述。在实际使用中,可以将具有类似属性的图层通过VI的Group参数组合成组,对整组图层都实施清除、复制或与图像数据合并等操作。由于对图像进行尺度(Scale)、像素移位(Shift)或旋转(Rotate)操作时,原来图像中的图层就失去了所具有的意义,因此在这些情况下,NI Vision会自动清除(Clear)与图像关联的图层。如果不想自动清除图像,可以设置图层的属性,使图像变换时图层保持不变(Keep)或与图像做相同变换(Transform)。应注意,无损图层与图像关联且仅对其进行注释,它并不像ROI那样有固定数据类型,也不会像ROI那样影响图像分析处理结果。此外,图像中如果包含无损图层等机器视觉系统信息,则它只能保存在PNG格式的文件中。为方便操作,NI Vision为包含机器视觉系统信息的图像读写提供了专门的VI。

表4-17 无损图层操作VI

图4-48显示了使用无损图层对图像分析结果进行注释的例子。一开始程序先将图像读入分配的Src内存缓冲区中。紧接着IMAQ Threshold对读入内存的图像进行阈值化处理,其中灰度值为128~255的像素被统一替换为灰度值1(默认值,对应调色板中的红色)。IMAQ Particle Analysis Report可以分析阈值化处理后图像中的连通区域,生成包括角度、重心坐标边界区域等信息在内的连通区域分析报告。为了能让用户清晰直观地了解图像分析结果,程序先使用IMAQ Clear Overlay清除任何残存的图层,再由For循环中的IMAQ Overlay Text把各个连通区域相对图像坐标x轴的角度以白色文本形式显示在区域的重心坐标处,如图4-48(a)所示。在为所有区域添加注释时,IMAQ Overlay Text的Group参数被设置为G,这意味着所有图层将被组合在一个组中。默认情况下,若对图像进行缩放、旋转或移位操作时,G组中的所有图层都会被自动被清除。但是,由于程序中的IMAQ Set Overlay Properties已经设置图像旋转时保留(Keep)文本图层,所以即使IMQ Rotate将图像逆时针旋转15°,图像中原来的角度文本仍然会显示出来,只是其中显示的信息仍然是图像旋转之前的结果。由此可以看出,在图像旋转后,原来的文本图层信息已经失去了对图像分析结果进行注释的意义。若要保持这些信息的有效性,必须重新计算连通区域的角度。

图4-48 图层示例

包含无损图层信息的图像必须保存在PNG文件中,此类图像文件的读写一般由IMAQ Read Image And Vision Info和IMAQ Write Image And Vision Info File 2实现。关于图像文件的读写将在第5章进行详细介绍。