VisionPro ToolBlock脚本编写&通过脚本绘制Record显示简单示例


1. 导读:
前面有一篇博客分享了如何使用C#调用ToolBlock,以完成一个简单的视觉开发项目。今天主要分享一下在ToolBlock中,如何编写运行脚本,主要包括以下几个方面的演示:

  1. ToolBlock添加输入项,主要用于用户界面参数修改,然后以参数的形式传入ToolBlock,以影响算法工具。
  2. 通过函数绘制自定义图形Graphics,然后将其打印到ToolBlock的某一个图层中(在VP中常说的Record类似于PS中的图层)。
  3. 输出一个不常用的数据类型,PMAlign工具的运行结果对象,也就是CogPMAlignResults类型。

最终效果:

2. 实现步骤:

在ToolBlock中添加一个CogPMAlignTool 工具,然后选择一张边缘对比较好的图像,训练模板。

选择ToolBlock的输出引脚类型–CogPMAlignResults

为当前ToolBlocl编写脚本,注意:这里选择C#高级脚本模式。

1 public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase 2 26 27 //将PMAlign工具的结果集合绑定到ToolBlock的输出 28 mToolBlock.Outputs["ResultList"].Value = pmaTool.Results; 29 30 //如果ToolBlock内的运行流程是自定义的,则返回false,否则如果按照正常流程执行则返回true 31 return false; 32 } 33 /// <summary> 34 /// 绘制仿射矩形 35 /// </summary> 36 private CogRectangleAffine CreateRectangleAffine(double Postion_X, double Postion_Y, double Weight, double Height, double Rotation, CogColorConstants Color) 37 46 /// <summary> 47 /// 绘制矩形 48 /// </summary> 49 private CogRectangle CreatRectangle(double Postion_X, double Postion_Y, double Weight, double Height, CogColorConstants Color) 50 60 61 /// <summary> 62 /// 绘制标签 /// </summary> 64 private CogGraphicLabel CreatLabel(string text, float size, double x, double y, CogColorConstants Color) 65 73 74 /// <summary> 75 /// 绘制圆形 76 /// </summary> 77 private CogCircle CreateCircle(double Center_X,double Center_Y,double Radius,CogColorConstants color) 78 88 89 /// <summary> 90 /// 当上一次的记录发生改变,并正在重构时调用此函数 91 /// </summary> 92 /// <param name="lastRecord">新的运行记录</param> 93 public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord) 94 100 } 101 }

开发程序中,在ToolBlock的Ran事件回调函数中显示,并获取结果。

1 private void OnToolBlockRan(object sender, EventArgs e) 2 15 dgv_DataList.DataSource = dataList; 16 }



上一篇:Cognex InSight TCP\IP通讯设置以及字符命令触发

下一篇:VisionPro Blob工具基本使用


VisionPro
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图