VisionPro自定义工具属于高级用法了,常见的都可以使用工具块或者工具组加上脚本实现。如果你想将opencv中的算法搬到VisionPro中使用,封装成VisionPro工具是个不错的选择,下面狗哥以图片另存工具为例,带大家过一遍VisionPro自定义工具的方法。有自学能力的,可以看看前面的教程VisionPro自定义工具教程
开发环境准备
- 确保安装了 Cognex VisionPro SDK。
- 使用编程语言:VisionPro 支持 .NET 环境(C# 或 VB.NET)。
- IDE:建议使用 Visual Studio。
创建自定义工具类
VisionPro 的工具通常是从 CogToolBase
继承,创建一个C#类库项目,名称为CustomTool
,然后在其中创建一个类名叫CustomSaveImageTool
隐藏内容,解锁需要开通VIP
登录/注册
然后在CustomTool
这个类库项目中,添加一项用户控件,命名为CustomSaveImageToolEditV2
注意:CustomSaveImageToolEditV2
这个名称要对应上面CustomSaveImageTool
代码中对控件的声明
[Editor(typeof(CustomSaveImageToolEditV2), typeof(Control))]
设计如下
注意:当你的自定义控件类,继承自CogToolEditControlBaseV2
类时,会自动首先visionpro工具的框架,你只需要添加编辑框按钮选择框即可。
隐藏内容,解锁需要开通VIP
登录/注册
到此,整个工具代码写完了,但是你还不能在visionpro中使用它。
运行下此项目,不出意外vs会提醒你,dll项目不能直接运行,不过没关系,运行一下即使报错也会在调试目录下生成对应的dll文件,这里生成的CustomTool.dll
接下来在当前的解决方案中,添加一个测试项目,选择Windows窗体程序,添加引用,浏览,找到刚刚生成的CustomTool.dll
文件,添加后,就能使用控件了,高版本vs会在工具箱最上面显示你刚刚制作的控件,直接拖就能使用,低版本还是用代码添加到窗体上预览吧。
不过这里不必使用它,我们只需要在测试窗体程序中,使用CogSerializer.SaveObjectToFile
方法将其序列化成二进制文件即可。将下面代码添加到窗口加载完成事件中,便于运行程序即序列化文件。
//CustomTool.CustomSaveImageToolEditV2 csi = new CustomTool.CustomSaveImageToolEditV2();
//Controls.Add(csi); 低版本代码添加预览
//序列化工具
CogSerializer.SaveObjectToFile(new CustomTool.CustomSaveImageTool(), Application.StartupPath + "/CustomTool.vtt");
在解决方案管理器中,右键测试项目,将其设置为启动项目,然后点击vs中的运行按钮,不出意外会在调试目录中生成CustomTool.vtt
文件。
添加自定义工具到VisionPro
想要将自定义工具添加到VisionPro,需要三个文件,dll、vtt、ico,缺一不可。ico图标文件大小16X16像素。
ico与dll文件全部复制到\Program Files\Cognex\VisionPro\bin
目录,具体参考你的visionpro安装路径。
vtt文件复制到\Program Files\Cognex\VisionPro\bin\Templates\Tools
,如果你想给自定义工具单独分组,请在该路径下新建文件夹,并将vtt文件放在其中即可。
我的显示器比较大,懒得调分辨率了,大家凑合着看吧。
工具没有终端?
做到这一步的同学应该是发现了,自定义的工具添加到visionpro中并没有生成默认的终端,想要实现自动添加默认终端,可以先右键工具,添加终端,添加好后,打开工具,选择保存,将工具覆盖掉之前的CustomTool.vtt
文件即可。
按照上图的流程,当pma工具识别成功时,自定义工具CustomTool
会自动将图像保存在用户自定义的文件夹中,以日期为文件名。
评论 (0)