前言
因为Vpp文件类型包含了以下三种
- QuickBuid
- Job
- ToolBlock
不同类型的打开方式不同,需要提前知道vpp是什么类型
例如
这个TB.vpp文件是TOOLBLOCK,就不能直接在visionpro中打开(直接打开需要QuickBuid文件),
可以先新建一个QuickBuid文件,引入ToolBlock工具,在ToolBlock工具打开
类型查找方式
需要用到此工具,但不能直接打开,需要用命令行
C:\Users\red>cd D:\Visionpro\VisionPro\bin\ //转到此目录C:\Users\red>vppversion --help //查看帮助文件//查看对应vpp文件类型及其他内容
C:\Users\red>vppversion -v D:\Visionpro\VisionPro\samples\Programming\ToolBlock\ToolBlockLoad\TB.vpp
其他
用VS加载TOOLBLOCK
准备工作
可以提前复制vpp和图像文件加入项目中,方便添加相对路径
代码
需要提前添加引用,添加程序集
编写代码时要参考vpp中的命名规则
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.Blob;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro.ImageFile;namespace mytbload
{public partial class Form1 : Form{CogImageFileTool mIFTool;CogToolBlock tb;public Form1(){InitializeComponent();mIFTool = new CogImageFileTool();mIFTool.Operator.Open("coins.idb", CogImageFileModeConstants.Read);//设置图像来源tb = CogSerializer.LoadObjectFromFile("TB.vpp") as CogToolBlock;//设置vpp文件tb.Inputs["FilterLowValue"].Value = 5050;//设置输入参数最小最大面积tb.Inputs["FilterHighValue"].Value = 8050;tb.Ran += Tb_Ran;//获取结果}private void Tb_Ran(object sender, EventArgs e){//数据更改部分//显示是否合格lbResult.Text = tb.Outputs["InspectionPassed"].Value.ToString();//显示斑点个数CogBlobTool mBlobTool = tb.Tools["CogBlobTool1"] as CogBlobTool;lbCount.Text = mBlobTool.Results.GetBlobs().Count.ToString();}private void Form1_Load(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){mIFTool.Run();//运行图像输入工具tb.Inputs["Image"].Value = mIFTool.OutputImage as CogImage8Grey;//设置,传入一张灰度图tb.Run();}}
}
结果图
visionpro中toolblock图