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 :斑点的面积

注意事项

什么时候使用斑点工具

  • 二维物体图像
  • 图像具有较高的对比度,低对比度的图像可能会导致边缘不清晰
  • *要求尺度不变性和旋转不变性
    • 旋转不变性:只要对特征定义了方向,然后在同一个方向上进行特征描述就可以实现旋转不变性。
    • 尺度不变性:为了实现尺度不变性,需要给特征加上尺度因子。 在进行特征描述的时候,将尺度统一就可以实现尺度不变性了。
相关推荐
ThisIsClark10 分钟前
【gopher的java学习笔记】Java中Mapper与Entity的关系详解
java·笔记·学习
scdifsn11 分钟前
动手学深度学习11.6. 动量法-笔记&练习(PyTorch)
pytorch·笔记·深度学习
安冬的码畜日常15 分钟前
【Vim Masterclass 笔记25】S10L45:Vim 多窗口的常用操作方法及相关注意事项
笔记·vim·自学笔记·vim多窗口·vim子窗口·vim水平分割·vim垂直分割
m0_5480497015 分钟前
SpringCloud学习笔记【尚硅谷2024版】
笔记·学习·spring cloud
流烟默17 分钟前
NLP自然语言处理中Word2Vec和GloVe概述
人工智能·自然语言处理
羊小猪~~17 分钟前
深度学习基础--LSTM学习笔记(李沐《动手学习深度学习》)
人工智能·rnn·深度学习·学习·机器学习·gru·lstm
我是聪明的懒大王懒洋洋18 分钟前
dl学习笔记:(7)完整神经网络流程
笔记·神经网络·学习
青松@FasterAI36 分钟前
Word2Vec如何优化从中间层到输出层的计算?
人工智能·深度学习·自然语言处理·nlp面题
CES_Asia41 分钟前
CES Asia 2025优惠期即将截止,独特模式助力科技盛会
人工智能·科技·数码相机·智能手表