VisionPro 机器视觉控件篇 之 CogBlobTool 斑点工具

第二篇 CogBlobTool 斑点工具

文章目录

功能

  • 检测图像中指定像素范围内由灰度值组成的斑点,并获取这些斑点的多种属性,如面积、周长、数量和坐标等。可以通过灰度形态学操作、条件筛选获得需要的斑点。

原理

  • 图像分割:根据用户设置的阈值(灰度分界点),将图像的像素分割为斑点像素(像素权值为0)和背景像素亦称孔(像素权值为1)。
  • 斑点分析:计算斑点的面积、周长、质心等特征参数,以及根据斑点的形状大小等特征进行过滤和分类

参数

阈值模式

硬阈值(固定)
  • 定义一个像素值 (0~255)作为图像分割点,大于此值的为物体(斑点)像素,小于为背景像素。
    -如下图,当设置为阈值设置为150时,大于150的是物体,小于150的是背景。
硬阈值(相对)
  • 使用两组参数指定相对阈值,根据图像中希望工具作为尾像素处理的像素百分比来确定阈值。
硬阈值(动态)
  • 根据输入图像的直方图来自动计算合适的阈值。
软阈值(固定)
  • 在信号处理或图像处理中,采用一个固定的阈值来对信号或图像进行软阈值处理。
软阈值(相对)
  • 通过指定要排除的尾像素和高尾像素的百分比以及柔软步骤的数量来计算低阈值和高阈值。
映射
  • 某些类型的场景不能使用二值阈值技术进行分割(只有当斑点所有部分比背景区域对比更明显的时候二值阈值才有效)。像素映射精确指定哪些像素范围将被分配为斑点,那些像素范围被分配为背景像素,哪些像素范围被分配为边缘像素。

最小面积

  • 设置一个像素值,默认为10,会过滤掉图像中小于这个值的区域

灰度形态学操作(对白色区域操作)

  • 应用算子对像素的邻域进行操作,并改变区域形状的过程。通常在图像分割后对图像进一步处理,增强需要斑点的特征,减少干扰项的特征。
侵蚀(腐蚀)与扩大(膨胀)
  • 8邻域算法实现腐蚀操作和膨胀操作,判断一个像素点跟周围几个像素点是否相同来判断腐蚀还是膨胀
  • 侵蚀:减少或消除物体的特征,增加物体内部孔的厚度
  • 扩大:减少或消除物体内部的孔洞,增加物体形状特征的厚度
打开与关闭
  • 开运算
    • 先侵蚀再扩大
    • 消除细小毛刺/物体的小特征,保留物体内部的孔洞
  • 闭运算
    • 先扩大再侵蚀
    • 消除物体内部的孔洞
垂直面 水平面 正方形
  • 垂直面即对纵向进行操作
  • 水平面即对横向进行操作
  • 正方形即对整个进行操作

测得尺寸

  • 过滤

    • 包含
      • 选中符合条件的斑点
    • 排除
      • 去除符合条件的斑点
  • 排序

    • 根据选择的特征对斑点进行排序,默认降序

图像

名称 功能
Current.InputImage 为 Blob工具提供输入图像,此为InputImage
LastRun.InputImage 显示工具最后一次分析的图像
Current.Histogram 显示关注区域中当前InputImage的直方图(如果有),斑点工具在创建检测记录时生成的
LastRun.Histogram 显示工具所运行最后一个图像的关注区域中的直方图
LastRun.BlobImageUnfiltered 显示由所提取的斑点数据生成的图像
LastRun.BlobImage 显示由所提供的斑点数据生成的图像,不包括已过滤掉的斑点
  • 一般调试时,选择LastRun.BlobImage图像并打开电子模式,可以实时反馈调整参数后的图像

使用步骤

  • 添加斑点工具
  • 传入图像
  • 选择输出图像,设置为电子模式,便于实时展示调整参数后的图像
  • 根据案例不同调整阈值分割区域,默认是整张图图像- 根据要筛选的图像部分,调整参数
  • 根据需要进行过滤、排序,添加其他的斑点信息

常用结果集

  • GetBlobs()
    • Results.GetBlobs().Count : 匹配到的斑点的数量
    • Results.GetBlobs().Item[i].CenterOfMassX,Results.GetBlobs().Item[i].CenterOfMassY: 斑点的质心坐标
    • Results.GetBlobs().Item[i].Perimeter:斑点的周长
    • Results.GetBlobs().Item[0].Area :斑点的面积

注意事项

什么时候使用斑点工具

  • 二维物体图像
  • 图像具有较高的对比度,低对比度的图像可能会导致边缘不清晰
  • *要求尺度不变性和旋转不变性
    • 旋转不变性:只要对特征定义了方向,然后在同一个方向上进行特征描述就可以实现旋转不变性。
    • 尺度不变性:为了实现尺度不变性,需要给特征加上尺度因子。 在进行特征描述的时候,将尺度统一就可以实现尺度不变性了。
相关推荐
PeterClerk39 分钟前
NLP领域重要会议及CCF等级
人工智能·自然语言处理
keira6741 小时前
【21天学习AI底层概念】day6 监督学习vs无监督学习
人工智能·学习
怡步晓心l1 小时前
机器学习预处理-表格数据的分析与可视化
人工智能·机器学习
2401_857610031 小时前
SSM 技术打造垃圾分类系统,提升环境质量
人工智能·分类·数据挖掘
Mr.看海1 小时前
【深度学习量化交易9】miniQMT快速上手教程案例集——使用xtQuant获取基本面数据篇
人工智能·python·深度学习·量化交易·miniqmt
数据与后端架构提升之路1 小时前
深度解析:推荐系统的进化之路与深度学习革命
人工智能
红色的山茶花1 小时前
YOLOv8-ultralytics-8.2.103部分代码阅读笔记-train.py
笔记·yolo
iracole1 小时前
深度学习camp-第J4周:ResNet与DenseNet结合探索
人工智能·深度学习
忆枫呐♬2 小时前
leetcode-73.矩阵置零-day5
java·笔记·leetcode·矩阵
Jacob_AI2 小时前
Prompt Engineering(吴恩达&OpenAI)
人工智能·python·prompt