VisionPro学习记录21-3彩色保险丝分类统计-CogCompositeColorMatchTool

流程图连接图效果图

 细节部分

思路

此案例用的是复合颜色匹配工具CogCompositeColorMatchTool,用了脚本实现,功能更加强大,之前的两个方法只能显示一个颜色的数量,这个借用的脚本能实现多个颜色数量一起显示。

现在复合颜色匹配工具训练各个颜色数据,然后在脚本代码中,将PMA匹配到的每个保险丝位置信息传给复合颜色匹配工具,然后在代码中运行此工具,将匹配得到的颜色数量存储在一个变量中,最后再用AddGraphicToRunRecord进行显示。

 复合颜色匹配工具CogCompositeColorMatchTool

为每个颜色进行训练

代码

  //1.1  定义一个标签用于显示结果
  CogGraphicLabel resultLabel = new CogGraphicLabel();//结果标签CogGraphicLabel





    //2code
    //2.1 首先获取PMA的运行结果  for  foreach来获取多个结果   !!!!!注意后面是中括号
    CogPMAlignTool pma =mToolBlock.Tools["CogPMAlignTool1"] as CogPMAlignTool ;  //获取CogPMAlignTool1工具
    //获取CogCompositeColorMatchTool工具
    CogCompositeColorMatchTool match =mToolBlock.Tools["CogCompositeColorMatchTool1"] as CogCompositeColorMatchTool ;
    
    //获取颜色匹配范围  region匹配范围   !!注意原本训练颜色匹配时,用的区域形状是什么就用什么
    CogRectangleAffine region = match.Region as CogRectangleAffine;
    
    int bluenum = 0;
    int greennum = 0;
    int orangenum = 0;
    int rednum = 0;
    int yellownum = 0;
    
    //2.2针对每个结果运行一下复合颜色匹配工具
    foreach (CogPMAlignResult item in pma.Results ) //item 指代PMA的每一个结果
    {
      //设置颜色匹配工具的匹配范围
      region.CenterX = item.GetPose().TranslationX;
      region.CenterY = item.GetPose().TranslationY;
      region.Rotation = item.GetPose().Rotation;
      
      //运行颜色匹配工具
      mToolBlock.RunTool(match, ref message, ref result);//运行match颜色匹配工具,后两个参数不需要关注
      
      //获取颜色匹配的最佳结果
      string color = match.Result.ResultOfBestMatch.Color.Name;
      
      switch(color)
      {
        case "blue":
          bluenum++;
          break;
        case "green":
          greennum++;
          break;
        case "orange":
          orangenum++;
          break;
        case "red":
          rednum++;
          break;
        case "yellow":
          yellownum++;
          break;
        default:
          break;
      }
    }

    // 2.4显示
    string res = String.Format("蓝色:{0} 绿色:{1} 橘色:{2} 红色:{3} 黄色:{4}",bluenum,greennum,orangenum,rednum,yellownum);
    resultLabel.SetXYText(100, 10, res);
    resultLabel.Color = CogColorConstants.Red;
    resultLabel.Font = new Font("楷体", 12);
    resultLabel.Alignment = CogGraphicLabelAlignmentConstants.TopLeft;//设置为左上对齐方式




//3code 显示到窗口
mToolBlock.AddGraphicToRunRecord(resultLabel, lastRecord, "CogImageConvertTool1.InputImage", "");

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值