流程图拖拽视觉编程--概述

news/2024/5/18 23:23:04 标签: 流程图, 低代码

       一般的机器视觉平台采用纯代码的编程方式,如opencv、halcon,使用门槛高、难度大、定制性强、开发周期长,因此迫切需要一个低代码开发的视觉应用平台。AOI缺陷检测的对象往往缺陷种类多,将常用的图像处理算子封装成图形节点,如抓直线、抓圆、模板匹配等,在软件上自由组合完成对缺陷的判断将大大提高效率。目前我接触到的通过流程图拖拽的方式搭建视觉应用的软件有Vision Master、Smart3、VisionTool等,下面将简单介绍下:

VisionMaster介绍

Vision Master封装了千余种海康自主开发的图像处理算子,形成了强大的视觉分析工具库,无需编程,通过简单灵活的配置,便可快速构建机器视觉应用系统。该软件平台功能丰富、 性能稳定可靠,用户操作界面友好,能够满足视觉定位、测量、检测和识别等视觉应用需求。

 

Smart3介绍

Smart3 智能视觉系统是一款简单易用、功能齐全、性能稳定的智能型视觉软件系统。Smart3 智能视觉软件由 OPT 公司自主研发,集成图像工具箱、定位工具箱、测量工具箱、检测工具箱、识别工具箱、通讯设置工具箱、其他工具箱和 3D 工具箱等一系列图像处理功能。支持市面上可见的绝大多数相机品牌,支持 GeniCam 协议。并支持串口、TCP 等多种通讯模式及主流的通讯协议,能够方便的与各品牌运动控制设备建立数据交互。Smart3 智能视觉系统采用图形编辑代替了代码编写,从而实现检测项目的快速开发。流程与事件触发机制的组合,能够便捷的实现大部分视觉检测项目。基于异构计算加速技术,使图像分析速度全面提升。该系统还支持在线调试功能,使应用项目能够在不停产停机的情况下,快速调整视觉参数设定以获取最优检测效果。智能视觉系统还支持用户基于自定义需求的二次开发。并基于COM 和.NET 接口技术,增加了对 VB,C#,C++多种编程语言的支持。可自由配置的模块化 UI界面,能满足用户的特殊显示需求。

 

VisionTool介绍

visiontool是一款以拖拽编程为主的视觉软件,大体上可划分为TaskBlockTool三个层级,里面封装好多种视觉检测算法,机械手及相机(等硬件)控制指令,相机加机械手组合使用算法。用户需要在task层级,通过流程图的方式搭配block的运行逻辑,在block层级拖出所需的tool并做变量赋值,即可完成各种自动化任务。

 

借鉴以上软件自己实现了一个基于halcon的流程图拖拽编程软件

 

后期博客将分模块为大家介绍具体实现方式,模块划分如下:

1、流程编辑器:控件的拖拽与节点生成、流程数据保存与解析

2、工具箱:存放节点控件

3、属性编辑器:编辑每个节点的参数

4、视觉模块:halcon的封装

5、流程执行器:生成执行链表,依次执行算子。


http://www.niftyadmin.cn/n/244508.html

相关文章

编程示例:HTML静态页面的传递数值的方法

<script language"javascript" > function getCookie(name) { /* *--------------- getCookie(name) ----------------- * getCookie(name) * 功能:取得变量name的值 * 参数:name,字符串. * 实例:alert(getCookie("baobao")); * update:2004-6…

kotlin协程flow retry retryWhen(2)

kotlin协程flow retry retryWhen&#xff08;2&#xff09; 一、retry import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlockingfun main(args: Array<String>) {runBlocking {(1..5).asFlow().onEach {if (it 3) {println("-")throw Runti…

Spring 事务及传播机制原理详解

Spring 框架是一个流行的Java应用程序框架&#xff0c;其中事务管理是其最重要的特性之一。事务是指一系列相关操作的集合&#xff0c;如果其中任何一步失败&#xff0c;整个事务应该回滚到之前的状态。 Spring 框架提供了一个丰富的事务管理功能集合&#xff0c;包括事务传播…

湫湫系列故事——减肥记Ⅰ

文章目录 湫湫系列故事——减肥记Ⅰ程序设计程序分析湫湫系列故事——减肥记Ⅰ 【问题描述】 对于吃货来说,过年最幸福的事就是吃了,没有之一! 但是对于女生来说,卡路里(热量)是天敌啊! 资深美女湫湫深谙“胖来如山倒,胖去如抽丝”的道理,所以她希望你能帮忙制定一个食…

Leetcode 622. 设计循环队列

文章目录 1.题目描述2.原题链接3.思路分析4.接口实现 &#xff1a;FrontRearenQueue(value):deQueue():isEmpty(): 检查循环队列是否为空isFull():myCircularQueueFree 5.代码实现 1.题目描述 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FI…

es 搜索中同时包含 “query“ 和 “filter“ 子句

Elasticsearch支持很多查询方式&#xff0c;其中一种就是DSL&#xff0c;它是把请求写在JSON里面&#xff0c;然后进行相关的查询。 一、Query DSL 与 Filter DSL DSL查询语言中存在两种&#xff1a;查询DSL&#xff08;query DSL&#xff09;和过滤DSL&#xff08;filter DSL…

InstructGPT:Training language models to follow instrcutions with human feedback

InstructGPT&#xff1a;Training language models to follow instrcutions with human feedback 介绍模型数据集TaskHuman data collectionmodel 实验结果参考 介绍 现在LLM可以被prompt来完成一系列的下游任务&#xff0c;然而这些模型也总会产生一些用户不想要的结果&#…

【pytorch系列】优化器optimizer的使用与常用优化器

1 optimizer类实例 1.1 介绍 属性 【default】该实例的类型为 dict&#xff0c;元素为初始化时候的学习率等&#xff0c;具体的keys为 [lr,momentum, dampening, weight_decay, nesterov]【state】保存参数更新过程中的一些中间变量&#xff0c;如momentum的缓存&#xff08…