Openvx Programming Guide:2.3 Graph mode翻译

让我们现在来看一下图(graph)模式。例子4可以看作是图模式的例子三,之后我们会通过比较两者,来帮助我们学习其是如何工作的。为了使他更容易的理解接下来发生变化,先对一些变换进行阐述:

1.函数makeInputImage()现在需要另外两个参数,指在图片当中矩形一半的宽度和一半的高度,所以这个制作图片十分简单。

2.一个新函数makeTestGrapg()创造了一个图实现了一种被称为例子3中main函数的vxu函数的功能

3.同样的一个新函数showResults()通过一个图片运行一个图和展示结果

4.一个新函数getGraphParameter()是通过简单的保重使openvx的库函数的使用更方便

5.新的main函数要简单的多,他通过两个图片运行图

然后,继续看更多细节

2.3.1 Creating the graph

在函数makeTestGraph()中,我们广泛的使用虚像,在这些图片中我们既不想读取数据,也不想写出数据。我们也不关心框架如何实现他们。我们只是使用它们连接和处理在图中的点,只是为了告知框架的拓扑结构。对于节点是以何顺序加入图,无关紧要,因为拓扑结构完全是由连接边定义的也就是数据对象。

在函数中,尽管数据对象是虚拟的但该实现可以通过节点合并在一起来自由的执行优化。

我们创建的输入图像不是虚拟的,但就像虚拟图像和其他临时对象,甚至那些包含输出数据的对象一样,我们在退出函数之前释放对它的引用。那怎么导入一个输入或者看输出。

答案就是i使用图参数,openvx的图参数一旦被做好他会给你一个简单的结构去改变输入和输出对象,而且这个结构允许图中的真实数据保持隐藏。图参数仅与一个节点的输入或输出相关联,因此,如果您希望一个对象是多个节点的输入,则可以使用Copy节点来隔离输入图参数。复制节点只需将其输入复制到其输出中,这当然是一个逻辑上的或概念上的操作。如果复制节点的输出是一个虚拟对象,则该实现将只“优化”该复制节点,所以在执行图时没有实际的开销。

请注意,我们的输入图像在例子3中是两个vux函数的输入,vxuWarpAffine() and vxuOr(),同样的我们通过图的创建实现了相同的功能。我们将相同的输入图像提供给两个节点,用这种方式来参数化两个图像是很不方便的。我们只想要一个输入,就可以去两个地方,所以我们介绍了复制节点,此提要的输出both vxWarpAffineNode() and vxOrNode(),我们能够只创建一个与复制节点的输入相关联的图形参数。

vxAddParameterToGraph(graph, vxGetParameterByIndex(vxCopyNode(graph, (vx_reference)input,(vx_reference)imagesU8[0]), 0));

需要注意的是,图形参数是按顺序添加的,由于我们先添加了这个,它将被索引值为零,而我们之后添加的输出参数将会有索引1和2。假设图的创建者将正确地记录它,以便任何使用它的人都将知道哪个参数是哪个参数。

请注意,我们在图形创建函数中没有太多的错误检查。这是因为在处理图形时,在创建所有对象和节点时出现的错误将被捕获,如果我们需要更多的细节,那么我们可以打开日志记录并看到框架的一些诊断输出,而不必测试每个函数调用结果。

2.3.2 Connecting to parameters and running the graph

看例子4的main函数,它也将在本节的后面进行复现。现在我们通过makeTestGraph()函数和一队矩形不同的图片创造图,所以我们可以说明用一个不同的输入参数调用图。运行图并表现结果,是新函数showResults()的功能,他调用了vx_graph and a vx_image作为参数。他设置图片作为图的输入参数,也就是你将记起通过首先将他加入到图来获取索引。

vxSetGraphParameterByIndex(graph, 0, (vx_reference)image);

接下来我们调用vxProcessGraph()运行图。开始运行,vxVerifyGraph()将在内部调用,任何发生的错误都会被发现。在这一点上,实现可以执行它认为必要的任何其他处理。一些实现可能积极优化图,利用任何虚拟对象,以便内核合并并将数据移动减少到最小。目前,Khronos示例实现并没有这样做,但来自硬件供应商的实现将这样做。

2.3.3 Running example 4

在例子4中给出两个输出集。第一个输出集应该与例子3相同,那是24个角,图片是相同的。第二个集合的结果给出了八个角,输入图片旋转九十度和叠加在身上仍然是正方体,所以你可以看见八个角,四个在里边,四个在外边。

本来刚开始看很难看懂,打算一边翻译一遍看,顺便记录下来,不过后续已经可以看懂了,就不再记录了。书如果没有的话,我放在我的资源里边

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: OpenVX编程指南PDF是一本非常实用的指南,旨在为需要使用OpenVX库进行图像和视觉处理的开发人员提供指导。OpenVX是一个跨平台的高性能计算机视觉库,它可以让开发人员更轻松地构建图像,视频和视觉信号处理应用程序。 这本指南涵盖了从基础知识到高级应用程序的各种主题,包括OpenVX框架,数据结构,语法和算法。它还提供了有关如何在OpenVX中使用功能块,滤波和其他图像处理工具的详细说明。 无论您是计算机视觉领域的专业人员还是初学者,OpenVX编程指南PDF都可以帮助您更加深入地了解OpenVX,并掌握其基本原理和使用方法。通过仔细学习这些概念和技术,您可以更好地应用OpenVX编程,并将其用于您的项目中。 此外,OpenVX编程指南PDF还包含丰富的实例和代码,可以帮助您更好地理解OpenVX的各种概念和技术,并加快您的开发速度。总之,如果您需要学习OpenVX编程,那么这本指南是您的理想选择。 ### 回答2: OpenVX编程指南(PDF)是一份介绍OpenVX图像处理框架的指南。该框架是一个跨平台的、高度优化的库,旨在提供一系列的函数,使图像、视频和视觉算法的开发变得更加容易。OpenVX框架使用图形计算来加速算法,并提供许多特定领域的算法,包括图像识别、人脸识别、深度学习和目标跟踪等。它具有许多有点,包括简化了编程过程、提高了计算效率、减少了开发时间和硬件开销等。在OpenVX编程指南中,介绍了如何使用OpenVX API和使用OpenVX图形计算框架来构建高效的计算图。此外,该指南提供了丰富的示例代码和代码片段,以便读者可以更好地理解OpenVX API库的功能和使用方式。总之,OpenVX编程指南非常实用和有用,对于想要学习或掌握OpenVX框架的人来说,是一份必备的指南。 ### 回答3: OpenVX编程指南是一本详细的文档,用于指导OpenVX图像处理库的使用和编程OpenVX库提供了一种高效的图像处理方法,可以帮助开发者轻松地实现复杂的图像处理算法。 这本编程指南包含了OpenVX库的各种特性、数据结构和函数的详细介绍。开发者可以通过这本指南了解OpenVX库的工作原理和实现方式,从而更好地了解如何使用OpenVX库来解决各种图像处理问题。 指南包括了大量的示例代码和详细的说明,使得开发者可以快速上手使用OpenVX库来编写图像处理应用程序。此外,指南中还提供了一些最佳实践和优化技巧,可以帮助开发者编写出更高效和可维护的代码。 总之,OpenVX编程指南是一本非常实用和详细的资料,可以帮助有志于使用OpenVX库开发图像处理应用程序的开发者快速掌握相关的知识和技能,从而更好地完成自己的工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值