使用C#加载TOOLBLOCK

前言

因为Vpp文件类型包含了以下三种

  • QuickBuid
  • Job
  • ToolBlock

不同类型的打开方式不同,需要提前知道vpp是什么类型

例如

这个TB.vpp文件是TOOLBLOCK,就不能直接在visionpro中打开(直接打开需要QuickBuid文件),

使用C#加载TOOLBLOCK_第1张图片

 可以先新建一个QuickBuid文件,引入ToolBlock工具,在ToolBlock工具打开

使用C#加载TOOLBLOCK_第2张图片

类型查找方式

需要用到此工具,但不能直接打开,需要用命令行

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

 其他

使用C#加载TOOLBLOCK_第3张图片

用VS加载TOOLBLOCK

准备工作

可以提前复制vpp和图像文件加入项目中,方便添加相对路径

使用C#加载TOOLBLOCK_第4张图片

 代码

需要提前添加引用,添加程序集

编写代码时要参考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();

        }
    }
}

  结果图

使用C#加载TOOLBLOCK_第5张图片

visionpro中toolblock图

使用C#加载TOOLBLOCK_第6张图片

 

你可能感兴趣的:(c#,visual,studio)