VisionPro学习记录23液位高度检测

文章描述了一种使用PMA1匹配液管底部并设定圆心为管体中心的方法,通过卡尺创建基准线和距离衡量线来测量液面高度。使用foreach遍历所有匹配的液面信息,对每个液位进行高度计算和判断,标注为OK或NG,并以图形方式展示在流程图上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程图连接图效果图

 

 

细节部分

思路

PMA1匹配液管底部,设置圆心为管体中心,主要是为了找到中心坐标

卡尺1卡到大部分页面的位置,然后用卡尺卡的线制造一根基准线线CogCreateLineTool1,再用这个基准线制作一个距离衡量线CogDistanceSegmentLineTool1

卡尺2卡页面高度信息,脚本用foreach遍历所有匹配得到的液面信息

 CogDistanceSegmentLineTool1中的Segment是每个待测线段,需要在代码中赋值

代码部分

添加程序集

    //1.code
  CogGraphicCollection gc = new CogGraphicCollection();


 CogPMAlignTool pma   = mToolBlock.Tools["CogPMAlignTool1"]    as  CogPMAlignTool;   //获取pma
    CogCaliperTool c   = mToolBlock.Tools["CogCaliperTool2"]    as  CogCaliperTool;   //获取卡尺 c是卡尺变量
    CogDistanceSegmentLineTool dis   = mToolBlock.Tools["CogDistanceSegmentLineTool1"]    as  CogDistanceSegmentLineTool;   //获取距离计算工具 
    
    
    
    gc.Clear();
    //遍历pma的结果
    foreach( CogPMAlignResult item in  pma.Results)
    {
         c.Region.CenterX  =  item.GetPose().TranslationX;
         c.Region.CenterY  =  item.GetPose().TranslationY;
         c.Run(); //运行卡尺
         
        //创建一个线段用于标注找到的结果
        CogLineSegment s = new CogLineSegment();//创建一个线段
        s.StartX = c.Results.Edges[0].PositionX;
        s.StartY = c.Results.Edges[0].PositionY;
        s.EndX = c.Results.Edges[0].PositionX + 20;
        s.EndY  = c.Results.Edges[0].PositionY;  
        s.Color = CogColorConstants.Red;
        s.LineWidthInScreenPixels = 5;
        gc.Add(s); 
        
        //计算每一个液位的高度 与 基准线的差值
        CogGraphicLabel label = new CogGraphicLabel();
      
        dis.Segment = s;
        dis.Run();//运行工具
      
        if( dis.Distance >15 )
        { //NG
        label.SetXYText( s.StartX, s.StartY,  "NG");
        label.Color = CogColorConstants.Red;
        }
        else //OK
        {
             label.SetXYText( s.StartX, s.StartY,  "OK");
             label.Color = CogColorConstants.Green;
        }
         gc.Add(label); 
      
    } 






mToolBlock.AddGraphicToRunRecord(g, lastRecord, "CogIPOneImageTool1.OutputImage", "");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值