Visionpro汉字喷涂检测

本文详细介绍了如何使用mToolBlock中的工具进行字符喷涂效果检测,并通过Blob工具进行区域比较,以确定字符识别的准确性。关键步骤包括OCR工具的读取、Blob结果的分析,以及根据面积阈值判断喷涂效果是否达标。

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

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 ## 基于visionpro的字符喷涂效果检测

image.png

mToolBlock.Outputs["Output"].Value = "NG";
  CogToolBlock job1 = mToolBlock.Tools["CogToolBlock1"] as CogToolBlock ;
 CogToolBlock job2 = mToolBlock.Tools["CogToolBlock2"] as CogToolBlock ;
CogOCRMaxTool ocr1 =mToolBlock.Tools["CogOCRMaxTool1"] as CogOCRMaxTool ;
CogOCRMaxTool ocr2 =mToolBlock.Tools["CogOCRMaxTool2"] as CogOCRMaxTool ;
// Run each tool using the RunTool function
foreach(ICogTool tool in mToolBlock.Tools)
  mToolBlock.RunTool(tool, ref message, ref result);
if ((job1.Outputs["OutputString"].Value == "OK") && (job2.Outputs["OutputString"].Value == "OK"))
{
  if ((ocr1.LineResult.Status.ToString()=="Read" ) && (ocr2.LineResult.Status.ToString()=="Read" ))

  {
    if ((ocr1.LineResult.Count == 7) && (ocr2.LineResult.Count == 7))
    {
      if (ocr1.LineResult.ResultString.Contains("?"))
      {

      }
      else
      {
         mToolBlock.Outputs["Output"].Value = "OK";
      }
    }
  }
}

image.png ```js mToolBlock.Outputs["OutputString"].Value = "1"; CogBlobTool blob1 ; CogBlobTool blob2 ; CogBlobTool blob3 ; CogBlobTool blob4 ; CogBlobTool blob5 ; CogBlobTool blob6 ; CogBlobTool blob7 ; CogBlobTool blob8 ; CogBlobTool blob9 ; blob1 = mToolBlock.Tools["CogBlobTool3"] as CogBlobTool; blob2 = mToolBlock.Tools["CogBlobTool5"] as CogBlobTool; blob3 = mToolBlock.Tools["CogBlobTool4"] as CogBlobTool; blob4 = mToolBlock.Tools["CogBlobTool2"] as CogBlobTool; blob5 = mToolBlock.Tools["CogBlobTool1"] as CogBlobTool; blob6 = mToolBlock.Tools["CogBlobTool6"] as CogBlobTool; blob7 = mToolBlock.Tools["CogBlobTool7"] as CogBlobTool; blob8 = mToolBlock.Tools["CogBlobTool8"] as CogBlobTool; blob9 = mToolBlock.Tools["CogBlobTool9"] as CogBlobTool; double max1 = blob1.Results.GetBlobs()[0].Area; double max2 = blob2.Results.GetBlobs()[0].Area; double max3 = blob3.Results.GetBlobs()[0].Area; double max4 = blob4.Results.GetBlobs()[0].Area; double min1 = blob1.Results.GetBlobs()[11].Area; double min2 = blob2.Results.GetBlobs()[9].Area; double min3 = blob3.Results.GetBlobs()[6].Area; double min4 = blob4.Results.GetBlobs()[13].Area; string a,b,c ,d,e; a = "";

b = "";

c = "";

d = "";

e = "";

// Run each tool using the RunTool function
foreach(ICogTool tool in mToolBlock.Tools)
  mToolBlock.RunTool(tool, ref message, ref result);

if(( blob1.Results.GetBlobs().Count == blob6.Results.GetBlobs().Count) && ( blob2.Results.GetBlobs().Count == blob7.Results.GetBlobs().Count)&& ( blob3.Results.GetBlobs().Count == blob8.Results.GetBlobs().Count) && ( blob4.Results.GetBlobs().Count == blob9.Results.GetBlobs().Count)&& ( blob5.Results.GetBlobs().Count == 2))
{
  for (int i = 0; i <  blob6.Results.GetBlobs().Count; i++)
  {

    if ( Math.Abs(blob1.Results.GetBlobs()[i].Area -blob6.Results.GetBlobs()[i].Area )<500)
    {
      a = "1";
    }


    else
    {
      mToolBlock.Outputs["OutputString"].Value = "a";
    }

  }
  for (int i = 0; i < blob7.Results.GetBlobs().Count; i++)
  {

    if  ( Math.Abs(blob2.Results.GetBlobs()[i].Area - blob7.Results.GetBlobs()[i].Area) < 500)
    {
      b = "1";
    }


    else
    {
      mToolBlock.Outputs["OutputString"].Value = "b";
    }

  }
  for (int i = 0; i < blob8.Results.GetBlobs().Count; i++)
  {

    if   ( Math.Abs(blob3.Results.GetBlobs()[i].Area - blob8.Results.GetBlobs()[i].Area) < 500)
    {
      c = "1";
    }


    else
    {
      mToolBlock.Outputs["OutputString"].Value = "c";
    }

  }
  for (int i = 0; i < blob9.Results.GetBlobs().Count; i++)
  {

    if  ( Math.Abs(blob4.Results.GetBlobs()[i].Area - blob9.Results.GetBlobs()[i].Area) < 500)
    {
      d = "1";
    }


    else
    {
      mToolBlock.Outputs["OutputString"].Value = "d";
    }

  }
  if ((Math.Abs(blob5.Results.GetBlobs()[0].Area-1042) <500 ) && (Math.Abs(blob5.Results.GetBlobs()[1].Area-950) <500 ))
  {
    e = "1";
  }
  else
  {
   mToolBlock.Outputs["OutputString"].Value = "e";
  }

}
else
{
 mToolBlock.Outputs["OutputString"].Value = "2";
}
if ((a=="1" )&&(  b=="1" )&&( c=="1") && (d=="1" )&&( e =="1"))
{
 mToolBlock.Outputs["OutputString"].Value = "OK";
}
else
{
mToolBlock.Outputs["OutputString"].Value = "3";
}

``` 本篇文章只介绍代码,详细的步骤将在先后续开始讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋小童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值