重叠数据对象
图2-2中节点N1的输出参数和节点N2的输入参数所引用的两个不同数据对象会导致这两个节点之间的依赖关系:例如,金字塔及其级别图像、由vxCreateImageFromROI或vxCreateImageFromChannel创建的图像及其子图像,或相同图像的重叠子图像,或从外部分配的缓冲区创建的具有重叠的对象。如果图使用从外部分配的具有重叠的缓冲区创建的对象,则图验证和/或图执行的行为由实现定义。图2-2显示了这种依赖关系的示例。为了简化随后的定义和要求,施加了一个限制,即如果子图像I'是从图像I创建的,并且子图像I''是从I'创建的,则I''仍然被视为I的子图像,而不是I'的子图像。在这些情况下,尽管两个节点引用了两个不同的数据对象,但对一个数据对象的任何更改,都可能反映在另一个数据对象中。因此,在图的拓扑顺序中,
在
前。为了确保这一点,导入了节点与引用示例,分别是如图2-2与图2-3所示。
图2-2 金字塔节点与引用示例
图2-3 图像节点与引用示例
1)包含集-C(d),d的递归包含的数据对象集,命名为包含集,定义如下:
①
② 是由d直接包含的所有数据对象的集合:
如果d是图像,则从d的ROI或通道创建的所有图像,都直接包含在d中。
如果d是一个金字塔,则d的所有金字塔级别都直接包含在d中。
如果d是一个对象数组,则d的所有元素都直接包含在d中。
如果d是延迟对象,则d的所有槽都直接包含在d中。
③对于i>1, 是d以第 阶包含的所有数据对象的集合。
④ 是包含d本身的集合,d所包含的数据对象,d所含的数据对象所包含的这些数据对象,依此类推。
2) 是一个等于真值的谓词,当且仅当d是一个映象。
3)重叠关系。
重叠关系 是为图像定义的关系,如果 中的 和 , 是图像,则
为真,当且仅当 和 重叠,即 和 中都包含 的点 。这个关系是自反的和对称的,但不是传递的: 与 重叠, 与 重叠并不一定表示 与 重合,如图2-4所示。
图2-4 重叠关系示例
4)依赖关系
依赖关系 是为节点定义的关系。 意味着 取决于 ,然后意味着 必须在 完成后执行。
5) ,如果 写入数据对象 并且 从数据对象 读取。
如果输出边缘 的数据对象 与数据对象 重叠,则结果是实现定义的。
vxMagnitudeNode和vxPhaseNode是独立计算的,因为它们不依赖于另一个的输出。