当前位置: 首页 > news >正文

机器视觉6

工具块(toolBlock)与工具组(toolGroup)特点

1.使项目结构更清晰

2.可以使用脚本

3.toolBlock可以插入自定义类型的输入&输出 toolGroup无法自定义

4.所以在选择工具的容器时,应尽量选择toolBlock,其对输入输出、数据链接、数据修改等方便直观。

toolBlock自定义输出输入参数设置

系统类型

c#常用内置数据类型

VP类型

VP常用内置数据类型

浏览

不常用数据类型

使用不常用数据类型

1.直接拖动绑定

2.查看帮助文档确定类型所在命名空间

(1)当前类的命名空间

(2)类中的成员 (属性 方法 字段 事件)

(3)通过关键字搜索其他VP类型

(4) 点击(1) 当前命名空间的包含所有类

点击(2) 查看当前类的成员详细信息

block使用流程: pma和blob 个数对比案例

1添加输出相源

2.添加block工具 修改名字 添加输入相源

1.双击进入block工具 添加Blob工具 链接输入相源

1.重复上述操作 完成另一个 模板匹配 工具

1.点击输入/输出 或者之间拖拽到【Outputs】 设置blob_count

1.PMA同上

利用分析工具比较 两个结果的个数大小


toolBlcok工具文件保存与打开

toolBlcok工具文件打开

新建toolBlock工具 然后打开对应文件

toolBlcok脚本

脚本特点:扩展 QuickBuild 的功能

1.根据其他工具的运行结果有条件的运行视觉工具

2.对视觉工具的执行结果进行附加计算

3.创建或定制可重复利用的工具

复杂脚本解析

代码结构与toolGroup基本一致

区别以下几点

1.动态定义toolBlock的输入输出终端

2. 能够访问当前工具块所包含工具的所有属性与方法

3.推荐直接使用复杂脚本

toolBlcok脚本创建流程

1.每一个toolBlcok 都有一个脚本

如果创建错脚本 可以先删除 再次创建

1.案例给 block 输出输入参数赋值

2.案例:查看模板匹配是否成功

3.案例 利用label赋值 并且显示

4案例:切换不同的颜色的CogCreateGraphicLabelTool显示PMA分数

1.未启用的工具 使用run方法 执行工具

2.runTool方法 默认执行已启用的工具

5案例:工具运行状态

#region namespace imports
using System;
using System.Collections;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro3D;
using Cognex.VisionPro.PMAlign;
#endregion

public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase
{
#region Private Member Variables
private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;
#endregion

CogGraphicLabel cc = new CogGraphicLabel();
public override bool GroupRun(ref string message, ref CogToolResultConstants result)
{


foreach(ICogTool tool in mToolBlock.Tools)
{ //以集合的方式统一运行工具
// mToolBlock.RunTool(tool, ref message, ref result);

//Run 单独运行某个工具
tool.Run();
if (tool.RunStatus.Result == CogToolResultConstants.Accept)
{
//控制vp运行工具后显示内容
message = "工具运行成功123";
//记录当前工具运行状态
result = CogToolResultConstants.Accept;

}
//工具运行异常
else if (tool.RunStatus.Result == CogToolResultConstants.Error)
{
message = "工具运行错误"+tool.Name;
result = CogToolResultConstants.Error;
cc.SetXYText(100, 100, message);
return false;
}
}
// 所有工具无错误,返回成功
message = "所有工具运行成功";
cc.SetXYText(100, 100, message);
//所有工具成功执行后 result 代表block的状态
result = CogToolResultConstants.Accept;
return false;
}
public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord)
{
mToolBlock.AddGraphicToRunRecord(cc, lastRecord, "CogPMAlignTool1.InputImage", "");
}
#endregion

作业1:显示有胶无胶

作业2:线序识别

作业3:密封条胶塞颜色识别

http://www.zskr.cn/news/1465057.html

相关文章:

  • 如何高效使用Puppet PadLocal:微信机器人开发的终极指南
  • MuleSoft企业级AI编排:构建可审计、可治理的LLM服务中枢
  • 微博舆情实时分析工具包(含Python NLP代码+前后端可运行工程)
  • OmniCoder-2-9B社区贡献指南:如何参与项目开发和模型改进
  • CyberpunkSaveEditor:赛博朋克2077存档编辑的终极指南
  • 别再只画频谱图了!MATLAB中FFT2/IFFT2的abs()和real()到底该怎么选?
  • T3Q-ko-solar-sft-dpo-v1.0-openmind:韩语AI模型开源生态完整贡献指南 [特殊字符]
  • 告别花屏卡顿:用匿名科创地面站+串口协议,给你的单片机数据做个“动态心电图”
  • KLayout性能优化:大型版图文件处理的7个最佳实践
  • 深入解析use-mcp:React钩子如何简化MCP服务器连接
  • 韶关黄金回收2026年6月实时报价及靠谱门店盘点 - 余生黄金回收
  • 微信机器人开发终极指南:PadLocal协议深度解析与实战应用
  • 零基础入门Hermes Agent:借助快马生成你的第一个“Hello Agent”
  • OptiScaler终极指南:开源AI超分技术打破GPU厂商壁垒
  • Qwen2-7B-Instruct推理代码详解:30行Python实现智能对话的核心逻辑
  • Git克隆报错‘项目未找到‘?别急着重装,先检查这3个地方(附凭据管理器操作)
  • 从Root检测到DRM解密:手把手调试一个运行在Android TEE里的‘小程序’(TA)
  • 避坑指南:STM32CubeMX配置低功耗停止模式后,程序跑飞/无法唤醒怎么办?
  • 用高斯分布检测服务器异常行为:Z-score实战指南
  • 15分钟搞定神经网络绘图:Neural-Network-Architecture-Diagrams文件结构与编辑技巧
  • 10分钟打造专属AI音色:RVC语音克隆完全指南,零基础也能成为声音魔法师
  • Multilingual-E5-Large常见问题解答:解决使用过程中遇到的20个典型问题
  • nRF52832蓝牙主机开发避坑指南:从零实现按键控制与数据收发(附完整代码)
  • 保姆级教程:Win10家庭版/专业版局域网共享文件夹,从开启网络发现到解决‘无法访问’全流程
  • MATLAB做的答题卡自动批改工具:拖图进GUI就能识别学号、选项并算分
  • 别再死记硬背JDBC代码了!用Educoder实战项目手把手教你CRUD操作(附完整源码)
  • 告别提取码烦恼!3分钟掌握百度网盘资源一键获取的终极秘籍
  • 荆州黄金回收靠谱门店测评:六家正规店铺实测推荐 - 余生黄金回收
  • STM32F103直接输出方波/锯齿波/正弦波的DAC工程,带Keil工程文件和可烧录hex
  • HunyuanVideo vs 其他T2V模型:精度指标与VBench得分全面对比