学习VISIONPRO各控件的C#中类库--应用--先设计好CogToolBlock控件模块功能进行保存(CogToolBlock类),再使用,像函数设计一样。

1.先了解其控件使用

编辑增加控件步骤1-2-3-4。我们把他当做一个整体进行封装,可以可以看成一个函数设计(增加输入类型几个,添加输出类型几个)

学习VISIONPRO各控件的C#中类库--应用--先设计好CogToolBlock控件模块功能进行保存(CogToolBlock类),再使用,像函数设计一样。

2.进行CogToolBlock控件功能设计(进行函数功能设计--即功能调试)

学习VISIONPRO各控件的C#中类库--应用--先设计好CogToolBlock控件模块功能进行保存(CogToolBlock类),再使用,像函数设计一样。

3.进行添加功能控件,进行配置把要输入和输出的项目设定好测试OK后进行保存。

学习VISIONPRO各控件的C#中类库--应用--先设计好CogToolBlock控件模块功能进行保存(CogToolBlock类),再使用,像函数设计一样。

4.下部分进行C#进行调用--先进行反序列化成为对象。

CogToolBlock Block= CogSerializer.LoadObjectFromFile(@"D:\AVI\Tool1.vpp") as CogToolBlock;

5.基本应用

private void button4_Click(object sender, EventArgs e)//测试应用CogToolBlock
        {
            this.cogRecordDisplay2.StaticGraphics.Clear();
            tool1 = CogSerializer.LoadObjectFromFile(@"D:\AVI\Tool1.vpp") as CogToolBlock;
            Bitmap A1 = (Bitmap)Bitmap.FromFile(@"D:\AVI\13.JPG");
            CogImage24PlanarColor ima3 = new CogImage24PlanarColor(A1);
            tool1.Inputs[0].Value = ima3;//输入图片
            tool1.Run();//运行
            CogTransform2DLinear aline = tool1.Outputs[0].Value as CogTransform2DLinear;

            label1.Text = string.Format("数据:角度:{0},\n X:{1},Y:\n{2}", aline.Rotation, aline.TranslationX, aline.TranslationY);

            cogRecordDisplay2.Record = tool1.CreateLastRunRecord().SubRecords[1];

        }

学习VISIONPRO各控件的C#中类库--应用--先设计好CogToolBlock控件模块功能进行保存(CogToolBlock类),再使用,像函数设计一样。

源码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro.ImageFile;
using System.IO;
using Cognex.VisionPro.OCRMax;
using Cognex.VisionPro.ID;
using System.Diagnostics;
using Cognex.VisionPro.PMAlign;
using Cognex.VisionPro.Blob;

namespace qj
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            chushua();
        }
        CogAcqFifoTool camtool = null;
        ICogFrameGrabber cam1 = null;
        ICogAcqFifo cam = null;
       // CogImageFile file = null;
        CogImageFileTool file1 = null;
        CogImageConvert covet1 = null;
        CogToolBlock tool1 = null;
        CogPMAlignTool tool2 = null;
        ICogImage tu = null;
        private void chushua()
        {
           // camtool = new CogAcqFifoTool();
           // cam = camtool.Operator;
          //  covet1 = new CogImageConvert();
            file1 = (CogImageFileTool)CogSerializer.LoadObjectFromFile(@"D:\AVI\img.vpp");
            tool2 = CogSerializer.LoadObjectFromFile(@"D:\AVI\pm1.vpp") as CogPMAlignTool;
            file1.Run();
           // cogRecordDisplay1.Image = CogImageConvert.GetIntensityImage(file1.OutputImage, 0, 0, file1.OutputImage.Width, file1.OutputImage.Height);
          cogRecordDisplay2.Image = file1.OutputImage;


        }

        private void button1_Click(object sender, EventArgs e)
        {
           // file1.Run();
            
            cogRecordDisplay2.Image =tu = CogImageConvert.GetIntensityImage(file1.OutputImage, 0, 0, file1.OutputImage.Width, file1.OutputImage.Height);
        }

        private void button1_Click_1(object sender, EventArgs e) //定位测试
        {
            Bitmap A1 = (Bitmap)Bitmap.FromFile(@"D:\AVI\13.JPG");
            CogImage8Grey ima1 = new CogImage8Grey(A1);
            
            tool2 = CogSerializer.LoadObjectFromFile(@"D:\AVI\pm1.vpp") as CogPMAlignTool;
            tool2.InputImage = ima1;
            tool2.Run();
            cogRecordDisplay2.Record = tool2.CreateLastRunRecord().SubRecords[0];
          CogTransform2DLinear aline=  tool2.Results[0].GetPose();
          label1.Text = string.Format("数据:角度:{0},\n X:{1},Y:\n{2},\n得分{3}", aline.Rotation, aline.TranslationX, aline.TranslationY, tool2.Results[0].Score * 100);
        }

        private void button2_Click(object sender, EventArgs e)
        {
      
        }

        private void button3_Click(object sender, EventArgs e) //CogPMAlignTool mark编辑
        {
            Form2 gi = new Form2();
            gi.ShowDialog();
        }

        private void button4_Click(object sender, EventArgs e)//测试应用CogToolBlock
        {
            this.cogRecordDisplay2.StaticGraphics.Clear();
            tool1 = CogSerializer.LoadObjectFromFile(@"D:\AVI\Tool1.vpp") as CogToolBlock;
            Bitmap A1 = new Bitmap(@"D:\AVI\13.JPG");
            CogImage24PlanarColor ima3 = new CogImage24PlanarColor(A1);
            tool1.Inputs[0].Value = ima3;//输入图片
            tool1.Run();//运行
            CogTransform2DLinear aline = tool1.Outputs[0].Value as CogTransform2DLinear;
            label1.Text = string.Format("数据:角度:{0},\n X:{1},Y:\n{2}", aline.Rotation, aline.TranslationX, aline.TranslationY);

            cogRecordDisplay2.Record = tool1.CreateLastRunRecord().SubRecords[1];
            A1.Dispose();
            tool1.Dispose();

        }
    }
}