LabVIEW Vision-IMAQ Copy Overlay复制覆盖
复制覆盖,非常好理解,就是将一个图像上的覆盖复制到另一个图像上。实际项目中应用比较少。函数使用上也比较简单。简单来看一下IMAQ Copy Overlay复制覆盖函数的应用。
IMAQ Copy Overlay复制覆盖效果
上面的效果,就是将采集图像上覆盖的直线,复制到打开图像中。而且可以看到打开图像中有覆盖时,复制的覆盖以及原始的覆盖相互之间是没有太多关系的。
首先来看一下IMAQ Copy Overlay复制覆盖的接线端。
IMAQ Copy Overlay复制覆盖函数位置
IMAQ Copy Overlay复制覆盖
复制函数的接线端相对比较少,不过这里的接线端方式,与前面的几个覆盖函数略有不同,因为其有两个图像接线端,而且是必须都要连接的不能为空的。
Groups is an array of strings consisting of the overlay group names to copy. If no names are specified, all available groups are copied.
组:是一个包含了需要复制覆盖组名称的字符串数组。如果不指定具体的组名称,则原图中所有组都将复制到目标一个图像中。这里的组是一个数组,可以指定原始图像中的某些组进行复制,而不想复制的覆盖可以不复制。
Image Src is a reference to the source image.
原始图像:是原始图像的缓存引用。即被复制覆盖的图像引用。
Image Dst is a reference to the destination image.
目标图像:是目标图像的缓存引用。即将原始图像中的覆盖复制到这个缓存中的图像中并保存显示的缓存。
下面来看一下程序框图,本节的程序框图和清除覆盖中的程序框图很类似,也是使用Wile循环加事件结构。复制函数中因为是将一个图像上的覆盖复制到另一个图像中,因此必须是两个不同的图像。所以是需要两个不同的图像缓存的,因此在程序初始化时,使用Create函数创建了两个不同的图像缓存。其中一个用于相机实时采集图像,另一个用于手动打开本地图片。采集图像、停止、采集图像覆盖等事件,基本上与清除覆盖函数中是一样,只需要将打开图像缓存的引用连线即可。
采集图像事件程序框图
停止事件程序框图
采集图像覆盖直线事件程序框图
打开图像事件程序框图
打开图像程序框图,则调用了IMAQ Load Image Dialog加载图像对话框、IMAQ Read File读取文件函数两个函数。这两个函数都很简单,直接调用连线即可,也可查看其它章节了解函数的具体应用。
Read File函数和Load Image Dialog函数的位置
覆盖圆事件程序框图
复制覆盖事件程序图
下面来看一下按步骤执行的效果。
运程程序后首先采集图像
第二步则在采集图像覆盖直线
第三步则打开图像
已经打开图像效果
第四步打开图像覆盖圆
第五步将采集图像上的直线复制到打开图像上进行覆盖
打开图像上直接复制采集图像上的覆盖到打开图像上
上面的效果是打开图像后不覆盖任何信息直接复制采集图像上的直线覆盖。我们可以看到复制覆盖是将覆盖的所有信息都复制到目标图像中,包含覆盖的颜色、坐标、绘制模式等等。