首页 > 其他分享 >VisionPro 机器视觉案例 之 骰子点数识别

VisionPro 机器视觉案例 之 骰子点数识别

时间:2024-11-12 23:16:09浏览次数:3  
标签:控件 骰子 案例 VisionPro 斑点 图像 点数 工具

 第二篇  机器视觉案例 之 骰子点数识别


目录

 第二篇  机器视觉案例 之 骰子点数识别

        1.案例要求

2.案例思路

3.使用控件

4.代码逻辑

5.效果实现

6.总结



1.案例要求

图1 工业相机下骰子图像

识别每一个骰子朝上面的点数,并将点数表明在对应的骰子上 


2.案例思路

     2.1 使用斑点工具CogBlobTool2 调整极性(白底黑点) + 测得尺寸面积(面积过滤)+ ConnectivityLabel(过滤排除孔) 只获得黑色点数 如图2所示,但无法确定具体每一个骰子的点数,因此考虑给斑点工具设定一个区域 可以考虑再使用一个模板匹配工具CogPMAlignTool或者一个斑点工具CogBlobTool,本案例使用斑点工具

图2 斑点工具过滤后的图像

       2.2 再使用一个斑点工具CogBlobTool1获得每一个骰子的区域:在测得尺寸的ConnectivityLabel 选择 过滤排除 孔(0),结果如图3所示

图3 斑点工具处理后骰子图像

         2.3 将CogBlobTool2的区域调整为CogPolygon,添加终端 添加输入 Region ,将CogBlobTool1添加终端 添加输出 Results.GetBlobs().item[0].GetBoundary();

图4  添加终端图像

3.使用控件

        3.1 灰度图像转换工具 ——CogImageConvertTool

              VisionPro中一些控件只能针对灰度图像进行操作,所以需要使用灰度图像转换工具来将图像转换成灰度图像

图5 灰度图像转换工具

        3.2 工具块工具——CogToolBlock 

                将控件集中起来,创建代码来调用控件的结果集或者批量操作控件等操作

图6 工具块工具

        3.3 斑点工具——CogBlobTool

                检测斑点、孔的数量面积,其中含有多种属性,例如坐标、面积、周长、宽高等,还可以进行排序,熟练掌握斑点工具会使案例操作简化。

图7 斑点工具


4.代码逻辑

        部分代码逻辑

    

    CogBlobTool cbt1 = mToolBlock.Tools["CogBlobTool1"] as  CogBlobTool;
    CogBlobTool cbt2 = mToolBlock.Tools["CogBlobTool2"] as  CogBlobTool;
    for(int i = 0;i < cbt1.Results.GetBlobs().Count;i++)
    {
      cbt2.Region = cbt1.Results.GetBlobs()[i].GetBoundary();
      cbt2.Run();
      int count = cbt2.Results.GetBlobs().Count;
      CogGraphicLabel label = new CogGraphicLabel();
      label.SetXYText(cbt1.Results.GetBlobs()[i].CenterOfMassX,cbt1.Results.GetBlobs()[i].CenterOfMassY,count.ToString());
      label.Color = CogColorConstants.Red;
      label.Font = new Font("宋体",50);
      gc.Add(label);//gc是CogGraphicCollection 集合
    }


5.效果实现

图8 效果实现图

6.总结

本案例主要考察斑点工具的使用


标签:控件,骰子,案例,VisionPro,斑点,图像,点数,工具
From: https://blog.csdn.net/m0_63509358/article/details/143717845

相关文章

  • js.删除并获得点数
    链接:740.删除并获得点数-力扣(LeetCode)题目:给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i]-1 和 nums[i]+1 的元素。开始你拥有 0 个点数。返回你能......
  • 两步加权最小二乘,定位三维目标、N个锚点(锚点数量不限,多于3个即可)
    提供一个MATLAB代码:基于两步加权最小二乘法的三维目标定位算法,利用多个锚点(基站)和时间差到达(TDOA)数据来估计未知目标的位置【可更改锚点数量、位置、待定位点的位置】文章目录代码功能概述运行结果源代码代码结构和详细说明总结代码功能概述该MATLAB代码通过模拟......
  • 基于Python+Django的旅游景点数据分析与推荐系统的设计与实(源码+文档+部署讲解等)
    课题简介基于Python+Django的旅游景点数据分析与推荐系统,为游客提供了智能化的旅游决策支持。系统从多个数据源收集旅游景点数据,包括景点名称、位置、类型(如自然景观、历史古迹)、门票价格、开放时间、游客评价等。利用Python的数据分析库,对这些数据进行清洗和整理,......
  • c++-有关输出、信息输入、趣味输入应用、运算符、变量、浮点数数据类型的基础知识
    C++是一种功能强大且广泛使用的编程语言,它可以用于开发各种类型的应用程序。在这篇文章中,我们将介绍C++程序的输出、信息输入、趣味输入应用、运算符、变量和浮点数数据类型的基础知识。目录输出信息输入趣味输入应用运算符变量浮点数数据类型题目题目1:解答1:题目2:......
  • 基于大数据的热门旅游景点数据分析系统的设计与实现
     作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企......
  • 带你用HTML+CSS+JS实现动态滚动骰子投掷效果!
    今天带大家用HTML+CSS+JS实现动态骰子投掷效果,下面来看看实现的效果:点击开始投掷,骰子开始滚动。点击停止投掷,骰子面会随机定在一个点数 那么如何实现呢?请听我细细讲解:一、骰子面的样式与布局1、样式:1、其中每一面大量的运用了flex布局来实现了骰面上圆点的位置。2......
  • 基于Python的热门旅游景点数据分析系统的设计与实现
    ......
  • 156java ssm springboot基于hive的大数据安顺旅游景点数据分析可视化系统旅游门票(源码
        文章目录系列文章目录前言一、详细视频演示二、项目部分实现截图三、技术栈后端框架springboot前端框架vue持久层框架MyBaitsPlus系统测试四、代码参考源码获取前言......
  • 浮点数格式化小探究
    在最近的工作中,遇到一个浮点数格式化问题,蛮有意思的,是之前所没遇到过的知识点,在此整理总结。问题描述一句话描述问题,将一个3位小数的浮点数,格式化为2位小数的,是什么样的舍入规则?一般想着的是四舍五入,但实际不是,具体如何,看如下程序。测试代码如下:voidtest_float_format(){ ......
  • c#对VisionPro的SDK二次调用
    1variamgeGrey=newCogImage8Grey(Raw2Bitmap(imagebyte,width,height));2CogToolBlocktb=(CogToolBlock)(CogSerializer.LoadObjectFromFile(vppName));34//输入5tb.Inputs["inputImage"].Value=iamgeGrey;6//运行流程7tb.Run();89获......