注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
LabVIEW Vision图像处理开发宝典-第二章 结构框架-第四节 通用图像处理平台流程图
第四节通用图像处理平台流程图
图1 通用图像处理平台VI层次结构
图1 通用图像处理平台VI层次结构 本平台的VI调用层次相对比较简单,大部分的VI调用都在三层以内,即主程序调用子VI,子VI再调用底层VI。一般来讲,程序编写,不需要有太深的调用关系,这样会非常麻烦,也不是很好理解程序的逻辑。最佳的方法就是主程序调用功能VI,然后功能VI调用实现这些功能的相关子VI、节点、属性、方法等。这样通过简单三层关系,来实现程序,是比较合理的。 图中有些许函数的调用关系比较复杂,如OpenG中的INI文件操作的VI,这里面就有太多复杂的调用,如果要想明白其中的关系,不花点时间,是很难搞明白的。OpenG的原则是尽可能多的实现通用性,因此其中就会有许多的可能性,每种可能性就会有一个VI,所以才会有比较复杂的调用关系。而在图像处理中,一般不会有太多复杂的调用关系,一切以简单高效为准。 图像处理程序,与其它测试测量程序的编写方法类似。其主要的流程为初始化(参数、硬件、界面等)>响应前面板用户事件>执行事件>图像采集>图像处理>数据判断>保存数据结果、图片>图像采集>图像处理……保存数据>退出。
图2 通用图像处理平台简易流程图
图2 通用图像处理平台简易流程图 通用图像处理平台使用生产者消费者(事件)模式为主要结构,生产者中的事件结构用于响应前面板的所有事件,如登录、登出、参数设置、参数另存为、打开参数、运动、连续采集、单帧采集、图像处理、自动运行、缩小图像、放大图像、原始大小、适合窗口、帮助、最小化、退出等事件。同时也可以响应图像显示控制中的事件,如ROI变换;参数值改变的事件等,所有前面板事件。
图3 生产者(事件结构)
图3 生产者(事件结构) 在主生产者消费者模式中的消费者,使用的是出队列+状态机的模式。用于响应生产者生成的队列元素。
图4 事件消费者+数据生产者
图4 事件消费者+数据生产者 在消费者中,为了提高采集图像与图像处理的效率 ,会将采集图像与图像处理两部分的内容分开并行执行,这样就又增加了一个附加的生产者消费者(数据)结构。其中生产者在主生产者消费者(事件)结构的消费者中,而附加的生产者消费者(数据)模式的消费者,则另外再建了一个队列+状态机。
图5 数据消费者
图5 数据消费者 根据以上的流程以及结构分类,即可方便的完成一个相机的图像采集与分析处理任务。如果需要支持多相机,则只需要将生产者消费者(数据)结构,即后面的两个WHILE循环中的内容复制一份,并将其中的VI、控件等,根据情况复制一份复本即可完成多相机的图像处理任务。整个程序的主程序的框架如下图所示:
图6 通用图像处理平台主程序框架
图6 通用图像处理平台主程序框架
|