赞
踩
这部分直接参考:https://blog.csdn.net/qq_41375318/article/details/103600406
加入完成后,如下图:
VisionPro:CogToolBlock工具的VPP(一般开发中使用的都是CogToolBlock工具的VPP,需要运行的过程在CogToolBlock中做好,然后保存)
注意:我这里可以连接并使用相机,不能用的可以使用CogImageFileTool工具
Form窗体:二次开发一般只需显示运行结果图片,我使用的是CogRecordDisplay
当你向窗体加入CogRecordDisplay控件时,会自动引用一部分,但仍需要自己添加所需的引用
视觉系统使用VisionPro的大概步骤
//1、加载VPP
CogToolBlock cogToolBlock = (CogToolBlock)CogSerializer.LoadObjectFromFile("...\\VPP\\IDRead.vpp");
//2、运行VPP
cogToolBlock.Run();
//3、获取VPP中的工具(CogIDTool1)
CogIDTool cogIDTool = (CogIDTool)cogToolBlock.Tools["CogIDTool1"];
//4、获取CogIDTool1里面LastRunRecord的第一项(也就是需要在窗体显示的图片)
cogRecordDisplay1.Record = cogIDTool.CreateLastRunRecord().SubRecords[0];
//是否图片自fill于cogRecordDisplay1
cogRecordDisplay1.Fit(true);
//需要某些工具中的数据,单独拿出来,类似于VisionPro的脚步
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Cognex.VisionPro; using Cognex.VisionPro.ID; using Cognex.VisionPro.ToolBlock; namespace IDRead { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { LoadVPP(); } private void button1_Click(object sender, EventArgs e) { RunOnceJob(); SaveImg(cogRecordDisplay1,"D:\\images\\");//保存图片 } #region VisionPro public CogToolBlock cogToolBlock; public string path = Application.StartupPath + @"\\VPP\\IDRead.vpp"; /// <summary> /// 加载vpp /// </summary> public void LoadVPP() { if (File.Exists(path)) { cogToolBlock = (CogToolBlock)CogSerializer.LoadObjectFromFile(path); } } /// <summary> /// 单次运行Job /// </summary> public void RunOnceJob() { cogToolBlock.Run(); CogIDTool cogIDTool = (CogIDTool)cogToolBlock.Tools["CogIDTool1"]; //获取组里面LastRunRecord的第一项 cogRecordDisplay1.Record = cogIDTool.CreateLastRunRecord().SubRecords[0];// cogToolBlock.CreateLastRunRecord().SubRecords[0]; cogRecordDisplay1.Fit(true); } #endregion /// <summary> /// 窗体关闭前 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_FormClosing(object sender, FormClosingEventArgs e) { //释放资源(使用了相机) CogFrameGrabbers frameGrabbers = new CogFrameGrabbers(); foreach (ICogFrameGrabber fg in frameGrabbers) fg.Disconnect(false); } /// <summary> /// 保存图像 /// </summary> /// <param name="cogRecordDisplay">vision pro 显示窗体</param> /// <param name="path">图片存入路径</param> private void SaveImg(CogRecordDisplay cogRecordDisplay, string path) { if (cogRecordDisplay.Image == null) //判断是否有图片 return; if (!Directory.Exists(path)) //如果没有同名文件夹,就创建一个文件夹 { Directory.CreateDirectory(path); } //保存图片至文件(24位位图) Image image = default(Image); image = cogRecordDisplay.CreateContentBitmap(Cognex.VisionPro.Display.CogDisplayContentBitmapConstants.Image, null, 0); image.Save(path + DateTime.Now.ToString("yyyyMMddhhmmssff") + ".bmp", ImageFormat.Bmp); //路径、时间、格式 } } //保存vpp //CogSerializer.SaveObjectToFile(cogToolBlockEditV21.Subject, "path"); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。