石鑫华视觉 发表于 2020-5-11 17:48:24

LabVIEW Vision图像处理开发宝典-第二章 结构框架-第四节 通用图像处理平台流程图


LabVIEW Vision图像处理开发宝典-第二章 结构框架-第四节 通用图像处理平台流程图

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

页: [1]
查看完整版本: LabVIEW Vision图像处理开发宝典-第二章 结构框架-第四节 通用图像处理平台流程图

LabVIEW HALCON图像处理入门教程(第二版)
石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23