当前位置: 首页 > 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.jsqmd.com/news/953439/

相关文章:

  • TMS320F28335驱动AD2S1210旋变芯片的SPI解码工程包(含完整外设配置与调试支持)
  • CANN/asc-devkit:Ascend C SIMD API
  • 如何高效使用Puppet PadLocal:微信机器人开发的终极指南
  • 从课堂点名到芯片调度:用Round Robin算法解决FPGA设计中的‘公平性’难题
  • MuleSoft企业级AI编排:构建可审计、可治理的LLM服务中枢
  • 微博舆情实时分析工具包(含Python NLP代码+前后端可运行工程)
  • CyberpunkSaveEditor:赛博朋克2077存档编辑的终极指南
  • 比特币扩容技术解析:二层网络与阈值签名应用
  • 除了OBS推电影,你的Docker RTMP服务器还能这么玩:多场景应用指南
  • OmniCoder-2-9B社区贡献指南:如何参与项目开发和模型改进
  • Swagger转Word终极指南:3种方式实现API文档自动化生成
  • 百度网盘秒传脚本终极指南:5分钟实现永久文件分享的完整教程
  • 别再只画频谱图了!MATLAB中FFT2/IFFT2的abs()和real()到底该怎么选?
  • FLAN-T5-XXL 在中文场景下的应用:本地化使用技巧
  • 告别花屏卡顿:用匿名科创地面站+串口协议,给你的单片机数据做个“动态心电图”
  • ALMA毫米波偏振观测揭示恒星形成早期尘埃与磁场作用
  • T3Q-ko-solar-sft-dpo-v1.0-openmind:韩语AI模型开源生态完整贡献指南 [特殊字符]
  • 规避大模型结构化输出漏洞:防范提示词注入与安全越狱
  • 小白必看:ke-t5-base的5个核心功能及应用场景解析
  • 深入解析use-mcp:React钩子如何简化MCP服务器连接
  • KLayout性能优化:大型版图文件处理的7个最佳实践
  • CANN/Ascend C SIMD数据搬运API
  • 163MusicLyrics:网易云QQ音乐歌词下载终极指南,免费解决本地音乐无歌词困扰
  • 微信机器人开发终极指南:PadLocal协议深度解析与实战应用
  • 韶关黄金回收2026年6月实时报价及靠谱门店盘点 - 余生黄金回收
  • 零基础入门Hermes Agent:借助快马生成你的第一个“Hello Agent”
  • OptiScaler终极指南:开源AI超分技术打破GPU厂商壁垒
  • KLayout快速上手:如何在10分钟内开始查看GDSII和OASIS文件
  • 异地协同只是个梦?CRDE智橙跨地域跨组织跨终端协同功能让您梦想成真!
  • 别再只会用ode45了!Simulink直流电机调速仿真,6种算法对比实测(附模型)