当前位置: 首页 > 网络知识

VisionPro 工具调用和工具组(ToolBlock)调用

时间:2026-01-29 09:26:04
VisionPro是Cognex的机器视觉算法软件,通常的做法是使用VS做二次开发。
这里主要分享VisionPro中通过ToolBlock实现一个视觉检测,以及通过调用单个Tool实现一个视觉检测。
最终实现一个硬币数量检测以及坐标位置输出的应用:

使用ToolBlock的方式:

声明CogToolBlock类型的实例,并且序列化一个Vpp文件,编写vpp的过程这里不做赘述。

1 private CogToolBlock cogToolBlock2; 2 cogToolBlock2 = CogSerializer.LoadObjectFrFile(@"D:\C#Project\VisionPro_Control\VisionPro_Control\bin\x64\Debug\SampleVpp.vpp") as CogToolBlock; 3 //订阅ToolBlock的Ran事件,当ToolBlock执行完毕后程序会执行这个回调函数。 4 cogToolBlock2.Ran += new EventHandler(OnToolBlockRan);

由于这里使用的图片回放的方式,并非工业相机,所以需要申明一个CogImageFileTool类型,以获取图像或者图像集(idb、cdb)文件。(如果是接入工业相机,则需要声明CogAcqFifoTool采像工具,或者实现ICogFrameGrabber接口的方式从相机中取像。)

1 private CogImageFileTool cogImageFileTool2; 2 cogImageFileTool2.Operator.Open(@"F:\VPRO_Install\VisionPro\Images\coins.idb", CogImageFileModeConstants.Read);

为ToolBlock传入图像,并运行ToolBlock

1 //运行一次imageFileTool,则可以通过OutputImage属性获取到一张ICogImage类型的图片 2 cogImageFileTool2.Run(); 3 //将获取的图片赋值给ToolBlock的Image引脚,这里的Inputs是一个只读索引器 4 //可以通过["Image"]赋值,前提是"Image"没有被重命名。也可以通过[0]的方式赋值。 5 cogToolBlock2.Inputs["Image"].Value = cogImageFileTool2.OutputImage as CogImage8Grey; 6 //除了传图片给ToolBlock之外,还可以传参数进去,比如传入Pattern的查找概数限制。 7 cogToolBlock2.Inputs["SetCount"].Value = (int)nud_SetCount.Value; 8 //图片有了,参数有了,运行ToolBlock 9 cogToolBlock2.Run();

获取运行结果:

1 private void OnToolBlockRan(object sender, EventArgs e) 2 12 //将获取到的集合赋值给DataGridView控件作为显示的图像源 13 dgv_DataList.DataSource = dataList; 14 15 //一般来说这里要做界面图片显示部分,这里不再赘述 16 }

使用单工具调用的方式:

声明工具实例:工具vpp文件的编写这里不做赘述

1 private CogImageFileTool cogImageFileTool; //图像文件 2 private CogPMAlignTool cogPMAlignTool; //PMAlign图像识别工具 3 private CogFixtureTool cogFixtureTool; //位置修正工具 4 private CogBlobTool cogBlobTool; //斑点工具 5 6 cogImageFileTool = new CogImageFileTool(); 7 cogPMAlignTool = new CogPMAlignTool(); 8 cogImageFileTool.Operator.Open(@"F:\VPRO_Install\VisionPro\Images\bracket_std.idb", CogImageFileModeConstants.Read); 9 cogPMAlignTool = CogSerializer.LoadObjectFrFile(toolVpp + "pmalign_tool.vpp") as CogPMAlignTool;

按顺序运行工具:

1 //获取图像 2 cogImageFileTool.Run(); 3 //将图像赋值给PMAlign工具,并运行 4 cogPMAlignTool.InputImage = cogImageFileTool.OutputImage as CogImage8Grey; 5 cogPMAlignTool.Run(); 6 //将图像赋值给定位修正工具,并获取PMAlign工具的线性转换矩阵 7 cogFixtureTool.InputImage = cogImageFileTool.OutputImage as CogImage8Grey; 8 cogFixtureTool.RunParams.UnfixturedFrFixturedTransform = cogPMAlignTool.Results[0].GetPose(); 9 cogFixtureTool.Run(); 10 //将位置修正后的图像赋值给Blob工具,并运行 11 cogBlobTool.InputImage = cogFixtureTool.OutputImage as CogImage8Grey; 12 cogBlobTool.Run();

获取Blob工具的结果:

1 //这里显示在CogDisplay控件上,当然也可以显示在CogRecordDisplay控件上 2 cogDisplay1.StaticGraphicslear(); 3 cogDisplay1.Image = image; 4 //遍历Blob的结果集合,然后添加到CogDisplay绘制,这里显示斑点中心|边框 5 foreach (CogBlobResult item in cogBlobTool.Results.GetBlobs()) 6 10 cogDisplay1.Fit(true);



上一篇:Cognex InSight 西门子PLC关于Profinet通讯说明
下一篇:QT 5.12.9 + VS 2019配置并实现与三菱Q系列PLC通讯(2)实现通讯
VisionPro
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素