Visionpro多目标找圆直径

该代码段展示了一个使用CognexVisionPro工具进行图像处理的过程,包括使用CogCalibCheckboardTool1进行像素到实际距离的转换,CogPMAlignTool1抓取图像坐标,以及CogFindCircleTool1寻找并标记圆心坐标。通过循环运行和修改记录,实现图像中的圆的中心点显示和直径信息标注。
摘要由CSDN通过智能技术生成

在这里插入图片描述
CogCalibCheckboardTool1工具将像素转换成实际距离
CogPMAlignTool1工具抓取感兴趣图像的坐标
CogFindCircleTool1找圆

在这里插入图片描述
需要的中心点坐标位置

 #region Private Member Variables
  private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;
  CogGraphicCollection G = new CogGraphicCollection();//文本集合
  
  #endregion

将需要的圆的中心xy传到找圆工具 确定显示位置

public override bool GroupRun(ref string message, ref CogToolResultConstants result)
  {
    // To let the execution stop in this script when a debugger is attached, uncomment the following lines.
    // #if DEBUG
    // if (System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Break();
    // #endif


    // Run each tool using the RunTool function
    foreach(ICogTool tool in mToolBlock.Tools)
      mToolBlock.RunTool(tool, ref message, ref result);
    CogPMAlignTool P = mToolBlock.Tools["CogPMAlignTool1"] as CogPMAlignTool;
    CogFindCircleTool C = mToolBlock.Tools["CogFindCircleTool1"] as CogFindCircleTool;
    G.Clear();
    foreach(CogPMAlignResult item in P.Results){
      C.RunParams.ExpectedCircularArc.CenterX = item.GetPose().TranslationX;
      C.RunParams.ExpectedCircularArc.CenterY = item.GetPose().TranslationY;
      C.Run();
      CogGraphicLabel L   = new CogGraphicLabel ();
      L.Color = CogColorConstants.Red;
      L.Font = new Font("楷体", 10);
      L.SetXYText(item.GetPose().TranslationX,item.GetPose().TranslationY,"直径:"+(C.Results.GetCircle().Radius*2).ToString("F2"));
      G.Add(L);
      
    }

    return false;
  }

循环显示即可

 public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord)
  {
    CogPMAlignTool P = mToolBlock.Tools["CogPMAlignTool1"] as CogPMAlignTool;
    foreach(ICogGraphic item in G){
      mToolBlock.AddGraphicToRunRecord(item,lastRecord,"CogPMAlignTool1.InputImage","");
    }
    if(P.Results.Count==0){
      G.Clear();//没有图片清除显示信息
    }
    
  }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值