4.6 本章小结
NI Vision并不直接支持从视频信号转换得到的所有图像类型,但它会将不支持的图像类型转换为某种可以支持的类型再进行处理。NI Vision在系统内存组织图像时,不仅会包括像素,为图像增加了边界和左右对齐,还会将图像转换为它支持的图像类型。
一旦图像数据进入内存,就可以通过图像管理VI获知其类型、尺寸和边界以及它包含的用户自定义数据或与机器视觉系统相关的信息。必要时也可在内存中复制图像数据,更改图像尺寸和类型,操作图像的边界,读取或移除用户自定义数据与机器视觉系统相关信息。
不同的机器视觉系统算法往往基于不同类型的图像进行计算,在图像分析处理过程中经常需要在各种图像类型之间进行转换。将位数较少的像素转换至位数较多的像素时,可以采用直接复制法或查找表;将位数较多的像素转换为位数较少的像素时,可以使用移位剪裁法或位深度法。RGB和HSL颜色空间之间的转换可使用它们的关系式计算完成,而不同颜色空间的彩色像素与黑白灰度像素之间的转换则可以根据各自的特点进行。为方便在频率域分析处理图像,也可在实数类型与复数类型图像之间进行转换。
以LabVIEW和NI Vision作为机器视觉系统开发平台时,常使用图像显示控件(仅用于LabVIEW 7.0及之后版本)、外部窗口以及图像浏览器方式显示图像。图像显示控件可与其他LabVIEW控件共同嵌入VI的前面板中,创建集式界面。图像浏览器本质上仍属于图像显示控件,不同之处在于它会对文件夹中的多幅图像重新采样,并将缩略图组合在一幅图像中显示。外部窗口显示方式则使用独立窗口显示图像,显示图像的窗口可以被移动、缩放或隐藏。设计人员也可以捕获图像显示窗口中的事件,并对其进行处理。
无论以何种方式显示图像,都需要注意处理16位数据到8位数据的映射。常见的方法有全动态范围映射(Full Dynamic)、90%动态范围映射(90%Dynamic)、既定比例范围映射(Given Percent Range)以及右移位映射(Downshifts)等。为产生不同的显示效果,也可在不改变灰度图像数据的前提下,为灰度图像关联或更换调色板。实际开发过程中可选择配置或调用的类似属性和方法很多,图像显示控件使用属性和方法调用结点操作这些属性方法,而外部窗口显示方式则使用代码来完成配置和调用。
感兴趣区域(ROI)是从图像显示窗口中所选的一个图像分析处理过程中应重点关注的区域。它可使用ROI Descriptor数据结构进行描述。在LabVIEW中使用NI Vision定义ROI的方法大致可分为交互式、程序代码定义以及图像遮罩转换三大类。采用交互方式定义ROI可以减少程序代码的编写量,但在程序运行过程中需要用户参与,如ROI构造器。使用程序代码定义ROI归根结底是在程序运行过程中通过各种方式确定ROI Descriptor数据结构的实例,如将各种几何形状的简易数据结构转换为ROI。ROI可以与图像遮罩、标记图像进行转换,也可被组合或拆分并在不同坐标系之间转换。
无损图层可以采用几何图形等方式定性或定量描述图像分析处理结果或显示图像窗口的网格等。虽然图层可以与图像一起在窗口中显示,但它们一般并不会更改图像数据的值,除非是图层与图像数据进行合并。无损图层可被复制、合并或清除。设计时可以配置对图像进行尺度、旋转或移位操作时图层的相应动作。
NI Vision提供了完备的图像显示VI,但在机器视觉应用开发过程中,并不是所有图像都要显示。图像显示会消耗系统资源,开发人员应在系统实时性与图像显示的必要性之间进行权衡。