您的位置:首页 > 教育 > 培训 > 网络商城如何推广_永久免费自动建站系统_广告推广app_百度地图疫情实时动态

网络商城如何推广_永久免费自动建站系统_广告推广app_百度地图疫情实时动态

2025/2/23 9:32:57 来源:https://blog.csdn.net/m0_63509358/article/details/144001075  浏览:    关键词:网络商城如何推广_永久免费自动建站系统_广告推广app_百度地图疫情实时动态
网络商城如何推广_永久免费自动建站系统_广告推广app_百度地图疫情实时动态

第十五篇 机器视觉案例 之 齿轮齿数检测

文章目录

  • 第十五篇 机器视觉案例 之 齿轮齿数检测
    • 1.案例要求
    • 2.实现思路
      • 2.1 统计齿轮齿数使用模板匹配工具CogPMAlignTool,并从模板匹配工具的结果集中得到每一个齿的中心点。
      • 2.2 测量距离需要知道两个坐标点,一个是每一个齿的坐标,一个是齿轮中心坐标:齿的坐标已经获得,中心坐标需要一个找圆工具CogFindCircleTool通过找拟合圆得到圆心,找圆工具需要一个圆心的大致坐标位置,因此再使用一个模板匹配工具,最后使用点点距离测量工具测得距离
      • 2.3 距离的输出要求按照每行五个输出,需要对输出的坐标进行处理,代码如下
    • 3.使用控件
      • 3.1 模板匹配工具 —— CogPMAlignTool
      • 3.2 找圆工具 —— CogFindCircleTool
      • 3.3 点点距离工具 —— CogDistancePointPointTool
    • 4.代码逻辑
    • 5.实现效果
    • 6.知识点总结
      • 6.1 找圆工具的参数

1.案例要求

  • 检测齿轮齿数
  • 测量每一个齿中心到齿轮中心的距离,并将结果按照每行五个的格式输出
    在这里插入图片描述

2.实现思路

2.1 统计齿轮齿数使用模板匹配工具CogPMAlignTool,并从模板匹配工具的结果集中得到每一个齿的中心点。

2.2 测量距离需要知道两个坐标点,一个是每一个齿的坐标,一个是齿轮中心坐标:齿的坐标已经获得,中心坐标需要一个找圆工具CogFindCircleTool通过找拟合圆得到圆心,找圆工具需要一个圆心的大致坐标位置,因此再使用一个模板匹配工具,最后使用点点距离测量工具测得距离

2.3 距离的输出要求按照每行五个输出,需要对输出的坐标进行处理,代码如下

  • double x=i%5*100+100; double y=i/5*50+100;

3.使用控件

3.1 模板匹配工具 —— CogPMAlignTool

模板匹配工具一用来获得圆心大致位置,给找圆工具
在这里插入图片描述
模板匹配工具二用来找到每一个齿,需要调整旋转角度与查找概数在这里插入图片描述

3.2 找圆工具 —— CogFindCircleTool

  • 添加终端给坐标
  • 调整参数
    • 旋转角度为360°
    • 卡尺数量:数量越多找的圆越精确(合适的数量即可,过大的数量会导致工具卡顿)
    • 搜索方向:向内或向外,这里是向外

在这里插入图片描述

3.3 点点距离工具 —— CogDistancePointPointTool

在这里插入图片描述在代码中循环给工具赋值
在这里插入图片描述

4.代码逻辑

    CogPMAlignTool pma = mToolBlock.Tools["CogPMAlignTool2"]as CogPMAlignTool;CogDistancePointPointTool dis = mToolBlock.Tools["CogDistancePointPointTool1"]as CogDistancePointPointTool;CogFindCircleTool fct = mToolBlock.Tools["CogFindCircleTool1"]as CogFindCircleTool;int count = pma.Results.Count;labels = new CogGraphicLabel[count];Label.SetXYText(200,50,"一共有"+count.ToString()+"个");Label.Color = CogColorConstants.Magenta;Label.Font = new Font("楷体",20);for(int i = 0;i < count;i++){CogGraphicLabel label=new CogGraphicLabel();double x1 = pma.Results[i].GetPose().TranslationX;double y1 = pma.Results[i].GetPose().TranslationY;double X = fct.Results.GetCircle().CenterX;double Y = fct.Results.GetCircle().CenterY;dis.StartX = x1;dis.StartY = y1;dis.EndX = X;dis.EndY = Y;dis.Run();double distance = dis.Distance;double x=i%5*100+100;double y=i/5*50+100;label.SetXYText(x, y, "距离:"+distance.ToString("F0"));label.Color = CogColorConstants.Orange;labels[i] = label;}

5.实现效果

在这里插入图片描述

6.知识点总结

6.1 找圆工具的参数

  • 卡尺数量:指参与找圆的圆周上半径方向的找区分点的数量。这些点用于拟合圆,数量越多,拟合的圆可能越准确,但计算量也会相应增加。
  • 搜索长度:卡尺搜索区域的长度,即沿圆周方向搜索的范围。这个参数决定了搜索的精细程度。
  • 投影长度:卡尺搜索区域的宽度,即径向搜索的范围。它影响搜索的敏感度和准确性。
  • 搜索方向:搜索可以从内向外或由外向内进行,哪个方向区分度明显就选哪个方向。
  • 预期圆弧参数:用户可以根据需要设置预期圆弧的中心点、半径、起始角度及角度范围等,以帮助工具更准确地找到圆。
  • 忽略点数:在拟合过程中,可以忽略掉参与拟合点中误差过大的点。通常可以选取总点数的5%作为忽略点,以提高拟合的准确性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com