让代码更简单

VisionPro与C#混合编程取CogPMAlignTool工具运行结果

重要:本文最后更新于2020-04-03 16:00:25,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

关于C#取出visionpro的运行结果相关教程在之前的文章里已经说过一次了,不知道的可以看看教程,代码狗VisionPro工业视觉系列教程,为了让大家更加熟悉操作,这里讲一下CogPMAlignTool工具运行结果是如何取出来的。

VisionPro与C#混合编程取CogPMAlignTool工具运行结果

VisionPro与C#混合编程取CogPMAlignTool工具运行结果

CogPMAlignTool工具如下图所示

VisionPro与C#混合编程取CogPMAlignTool工具运行结果

VisionPro与C#混合编程取CogPMAlignTool工具运行结果

C#核心代码如下:


隐藏内容,解锁需要开通VIP
登录/注册

复制
private void button1_Click(object sender, EventArgs e)
 {
 mymanger = (CogJobManager)CogSerializer.LoadObjectFromFile(path);//加载路径中的vpp文件
 cogJobManagerEdit1.Subject = mymanger;//将加载进来的vpp文件对象赋值给jobmanger控件
 mymanger.Job(0).Stopped += new CogJob.CogJobStoppedEventHandler(jobstoped);//注册停止事件
 }
public void jobstoped(object obj,CogJobActionEventArgs arg) { 
  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; 
  MessageBox.Show("X:" + X + "\r\n Y:" + Y + "\r\n Rotation:" + Rotation + "\r\n Score:" + Score); 
}
private void button2_Click(object sender, EventArgs e)
 {
 mymanger.Job(0).Run();//运行vpp
 }


隐藏内容,解锁需要开通VIP
登录/注册

感觉很棒!可以赞赏支持我哟~

11 打赏

评论 (8)

登录后评论
明白了 一个是控件本身,一个是控件的窗口
引入工具的话,是引入PMAlign.dll ,还是引入PMAlign.Controls.dll,好多工具都有这两个库,狗哥这有什么区别啊?
C#小白,麻烦贴一下源代码谢谢
已更新全部代码
请问是job run 了后,直接这样查询分数吗?
建议使用监听job运行状况的形式来写代码,当job运行结束后会启动一个事件,这个事件里写查询分数。
好的,谢谢!
现在现有的问题是,如果有两个相机,是需要添加2个job?然后在每一个job里添加图像输入和处理工具?
好文章是一定要收藏的~
QQ咨询 邮件咨询 狗哥推荐