VisionPro与C#混合编程取CogResultsAnalysisTool工具运行结果
using Cognex.VisionPro; using Cognex.VisionPro.Caliper; using Cognex.VisionPro.Comm; using Cognex.VisionPro.FGGigE; using Cognex.VisionPro.PMAlign; using Cognex.VisionPro.QuickBuild; using Cognex.VisionPro.ResultsAnalysis; using Cognex.VisionPro.ToolGroup; 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; namespace VPPDemo { public partial class Form1 : Form { private const int INFO_OK = 0; private const int INFO_ERR = -1; CogJobManager cogJobManager; CogToolGroup cogToolGroup; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { string path = @"C:\Users\Administrator\Desktop\QuickBuild1.vpp"; cogJobManager = (CogJobManager)CogSerializer.LoadObjectFromFile(path); cogToolGroup = cogJobManager.Job(0).VisionTool as CogToolGroup; cogJobManager.Job(0).Running += new CogJob.CogJobRunningEventHandler(Job_Running); cogJobManager.Job(0).Stopped += new CogJob.CogJobStoppedEventHandler(Job_Stopped); } private void Job_Running(object sender,CogJobActionEventArgs e) { Console.WriteLine("Job running......"); } private void Job_Stopped(object obj, CogJobActionEventArgs arg) { Console.WriteLine("Job stopped"); CogJob job0 = (CogJob)obj; CogToolGroup ctg = (CogToolGroup)job0.VisionTool; CogPMAlignTool cra = (CogPMAlignTool)ctg.Tools["CogPMAlignTool1"]; double x = cra.Results[0].GetPose().TranslationX; double y = cra.Results[0].GetPose().TranslationY; double Rotation = cra.Results[0].GetPose().Rotation; double Score = cra.Results[0].Score; Console.WriteLine($"X:{x}\r\nY:{y}\r\nRotation:{Rotation}\r\nScore:{Score}\r\n"); CogFindCircleTool crr = (CogFindCircleTool)ctg.Tools["CogFindCircleTool1"]; double cx = crr.Results.GetCircle().CenterX; double cy = crr.Results.GetCircle().CenterY; double cr = crr.Results.GetCircle().Radius; Console.WriteLine($"CX:{cx}\r\nCY:{cy}\r\nCR:{cr}\r\n"); CogResultsAnalysisTool crt = (CogResultsAnalysisTool)ctg.Tools["CogResultsAnalysisTool1"]; string results = ""; foreach (string key in crt.Result.EvaluatedExpressions.Keys) { if (key != "Output") { string s = (System.String)crt.Result.EvaluatedExpressions[key].Value.ToString(); results += results + key + ":" + s + "\r\n"; } } Console.WriteLine(results); ICogRecord cogRecordCra = cra.CreateLastRunRecord().SubRecords[0]; ICogRecord cogRecordCrr = crr.CreateLastRunRecord().SubRecords[0]; cogRecordCrr.SubRecords.Add(cogRecordCra); cogRecordDisplay1.Record = cogRecordCrr; cogRecordDisplay1.AutoFit = true; } private void Form1_Running(object sender, CogJobActionEventArgs e) { } private void button1_Click(object sender, EventArgs e) { cogJobManager.Job(0).Run(); } private void button2_Click(object sender, EventArgs e) { cogJobManager.Shutdown(); } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { Environment.Exit(0); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)