学习VISIONPRO各控件的C#中类库--应用--先设计好CogToolBlock控件模块功能进行保存(CogToolBlock类),再使用,像函数设计一样。
1.先了解其控件使用
编辑增加控件步骤1-2-3-4。我们把他当做一个整体进行封装,可以可以看成一个函数设计(增加输入类型几个,添加输出类型几个)
2.进行CogToolBlock控件功能设计(进行函数功能设计--即功能调试)
3.进行添加功能控件,进行配置把要输入和输出的项目设定好测试OK后进行保存。
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];
}
源码:
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();
}
}
}