当前位置: 首页 > news >正文

VisionPro斑点寻找工具Blob

斑点寻找工具Blob

斑点概述

  • 斑点分析 探测并且分析图像中的二维形状
  • Blob是先根据用户设定好的灰阶范围对图像进行分割,然后对目标进行查找和分析。
  • 斑点报告多种属性:
    • 面积
    • 质心
    • 周长
    • 主轴
    • ……..

应用场景

  • Blob分析非常适合以下场合的应用:
    • 对象在尺寸、形状和/或方向上差异很大(训练模型很难或者不可能)
    • 对象有背景中找不到的截然不同的灰度
    • 对象没有重叠或者接触
  • 应用案例:
    • 检查环氧树脂点分配的数量、尺寸和形状
    • 检查表示坏薄片模型的墨水点的正确位置和大小
    • 检查药片的破碎和大小
    • 根据对象的尺寸、形状或位置整理或者分类对象

原理

  • Blob是先根据用户设定好的灰阶范围对图像进行分割,然后对目标进行查找和分析。
  • 有数种模式可以指定哪些可以将斑点与背景像素分开

运行作业

  1. 选择安装目录下blobs图片
  2. 添加Blob工具
  3. 运行

参数介绍

极性

      • 在光亮背景上的黑色斑点
      • 在黑色背景上的光亮斑点

白色的是斑点,黑色的是孔

先根据用户设定好的灰阶范围对图像进行分割,然后对目标进行查找和分析。

阀值

将斑点像素从背景像素中分开来的值

分割模式(分割算法)

固定硬阈值

适用于图像有双峰值的情况,是一种图像分割的方法

如果像让左边也变成白色,需要调整阈值108 使用电子模式调整

根据我们的设置灰阶值进行图像的分割,分割成两部分,背景和目标

分析效果

对应测得尺寸

通过测得结果我们发现最大的面积是18万,最小是68.如果想要其中的某一部分就可以在测得尺寸中进行筛选

如:面积是1000-5000的范围的斑点

排除0或者包含1

添加属性

注意:选择的属性越多,工具运行的时间就会越长

测得尺寸相关参数

拓扑 : 辨别斑点、孔以及孔中的斑点

以上是基本操作,

问题:如何进行灰度值的设置 如何进行查找

恢复成默认值

形态学的操作

白色区域在变大

注意:无论是黑底白点还是白底黑点操作的都是白色

分割算法

Blob使用时通常分为分割分析两步。分割就是第一步,将Blob区域找出来

固定硬阈值:

硬阈值分割:

相对硬阈值:

固定阈值的问题:无论是硬阈值还是软阈值,在光照亮度线性变化时都会出现无法分割的情况

无法适应光线

上图说明:三幅图最明显的变化是由亮到暗,

第一张当灰度值比较暗的时候,目标是10,背景是90,以100为分割,就找不到图像

第二张: 目标是120,背景是160,以100为分割,能够准确分割

第三张:分割不到

中间的图变亮变暗,都导致无法分割

相对阈值就可以避免这种问题

相对,不是按照灰度值进行分割的,而是按照对应像素的灰度值的占比进行分割的

如上图:40% 不管上面的图像变得两或者暗,目标像素的个数站总像素的个数的比例是固定的

以40%来分割就可以进行分割

使用相对硬阈值对亮度变化的图像实现完美分割

当亮度发生变化的时候,曲线往左平移,40%对应的阈值也会变小   灰度值变化 30

当亮度发生变化的时候,曲线往右平移,40%对应的阈值也会变大 灰度值变化 140

动态硬阈值

动态硬阈值是根据输入图像的直方图来自动计算合适的阈值

阈值是通过最小化在阈值两边的像素的权重方差来计算的。有双峰分布的直方图

会出现很好的分割。如果不是双峰分布,可能就不能得到很好的分割

固定软阈值:

固定硬阈值

在目标和背景之间存在一个过渡的区域,过渡区域可以使用柔和度来设置权重,这也就是中间部分是属于目标还是背景,可以根据每个阶段的权重得到计算的结果

总结:硬阈值就是一刀切,根据阈值分成两部分

        软阈值就是分成三部分,除了目标和背景两部分,中间还有一个过渡区,对缓冲区域根据权重值进行计算,计算出是属于目标还是背景

连通性

一个blob就是由一组连通的像素组成。visionpro中对象使用8邻域,背景使用4邻域

左图:中间是目标   8邻域  上下左右 边贴边 斜对角 相接的都属于他的域

以8邻域来看是一个blob,以4邻域来看是8个blob

总结:

  1. 固定的阀值要比相对的速度快,因为与百分比对应灰度不必计算
  2. 固定阀值可以检测场景中是否有某特征,而相对阀值始终在场景中找到一个斑点

  1. Blob工具的基本操作方法

选择分割算法、设置分割阈值、设置分割区域、运行查看结果、

设置测量参数、再次运行查看筛选后参数

Blob工具的基本原理

根据图像像素灰度值大小、或者像素个数占比,将图像分割对象和背景两部分,再设置筛选条件,选出合适的目标

  1. lob工具的典型应用场景

适合:2D对象、高对比度(背景与对象对比明显)、无叠加、尺寸和形状不确定

豆类检测练习

要求:利用3个Blob工具分别统计视野内花生、红豆、黑豆的个数,并把个数count添加到终端。

  1. 选择三种类型都有的图片
  2. 添加工具,选择分段模式

每个图中三种豆类都不一样,所以首先排除相对阈值

动态阈值对于双峰值

  1. 选择硬阈值固定,手动选择
  2. 通过输出结果筛选

  1. 电子模式设置

CogHistogramTool  

用于对图像中某个区域的像素的灰度值进行测量

条码的基础知识

条码:条码是由一组按一定编码规则排列的条、空符号组成,用以表示一定的字符、数字及符号组成的信息

一维码

  • Code 128

  Code 128 是一种密度很高的字母数字代码系统,可对其进行双向扫描。此代码系统可编码整个 128 ASCII 字符集以及四个非数据字符。采用 Code 128 代码系统的符号使用 11 个黑色或白色模块编码每个字符,并且每个符号包含一个校验和字符。

  • UPC/EAN

  UPC 是一种固定长度的纯数字代码系统,可对其进行双向扫描。UPC 符号的大小可变以适应各种打印流程,但代码在符号的高度大于其宽度时效果最佳。欧洲公司使用大体相当的 European Article Numbering (EAN) 系统。

  • Code 39

  Code 39(也称为 USS Code 39 或 Code three of nine)是一种广泛使用的代码系统,专门针对非零售环境应用,可编码字母、数字以及“%”和“/”等特殊字符。使用 Code 39 代码系统的符号使用 5 个条码和 4 个空格(共计 9 个元素)来编码每个字符,并且 9 个元素中有 3 个始终为宽。此符号可包含用于进行错误检测的校验和字符。

  • Code 93

  Code 93 所解码的字符与 Code 39 相同,但每个字符使用 9 个条码元素,而非 15 个。

  • Codabar

  Codabar 是一种用于编码数字的较旧代码系统。

  • Pharmacode

  Pharmacode 在制药工业中用作包装控制系统。

  • PDF417

  PDF417 是堆叠的线性条码符号格式,主要用于包括运输、身份证和库存管理在内的多种应用。

  • EAN.UCC Composite

  启用此系统时,可解码复合代码(具有二维分量的一维代码)。可与 EAN.UCC 一起使用的一维代码包括 GS1 DataBar 和 Code 128。

  POSTNET

  • 邮政数字编码技术 (POSTNET) 条码由美国邮政局发明,用来编码 ZIP 代码信息。采用 POSTNET 代码系统的条码使用 5 个长短不同的条码组合来编码每个数字字符。POSTNET 条码可包含 5 位数 ZIP 代码、5 位数 ZIP + 4 代码或 11 位数交货地点代码。此符号始终包含校验和字符。
  • PLANET

  PLANET 条码是 POSTNET 条码的逆反版本,在 POSTNET 代码系统使用长条码的地方使用短条码,在 POSTNET 代码系统使用短条码的地方使用长条码。美国邮政局使用 PLANET 条码来跟踪邮件。一个 PLANET 条码最多可有 12 位。

  • 4-State Postal

  4-State 是由澳大利亚邮政局采用的字母数字代码系统。采用 4-State 代码系统的条码使用 4 个不同类的条码来编码每个字符,其中每个条码都有不同的名字和值。4-State 条码可采用以下三个不同结构中的一个来生成:37 个条码(标准)、52 个条码或 67 个条码。Barcode 工具支持 4-State 代码系统的 Australian、JapanPost、UPU 和 USPS 版本。

二维码

1.二维码定义:

  二维码(2-Dimensional Bar Code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条码没有的“定位点”和“容错机制”。容错机制在即使没有辨识到全部的条码、或是说条码有污损时,也可以正确地还原条码上的信息。

2.类别:

        二维条码的种类很多,不同的机构开发出的二维条码具有不同的结构以及编写、读取方法。常见的二维码有:PDF417码、QR码、汉信码、颜色条码、quick mark code、data matrix

3.定位标记

  二维条码通常有特定的定位标记(如QR码为三个大的定位点),通过定位标记使读码机正确辨识进行解读,所以二维条码不管是从何种方向读取都可以被辨识。

4.特性

二维条码比一维条码记载数据量更多。而且可以记载更复杂的数据,比如图片链接、网络链接等。

标记类型

标签码

要将代码应用到产品上,最经济实惠、最简单的方式就是使用预先印刷的标签、标牌和贴纸。然而,这并非总是最灵活的方式,因为必须预先确定代码上的数据。

直接元件标记

直接元件标记(DPM)是一种永久性标记生产元件的工艺,无需标或包装。DPM通常由汽车

航空航天和电子产品制造商使用,以确保在整个生命周期可靠地跟踪他们生产的元件。首选DPM代码是Data Matrix码和OR码。

典型的DPM方法包括:

激光

喷墨

打点

化学蚀刻

CogIDTool

能够在同一张图像中读取种类不同的一维码、多个同种类的二维码、以及一些高度旋转和有透视变形的码

识别条形码

添加图片

添加工具

读取到的信息

识别二维码

总结:

CogIDTool工具的功能原理

CogIDTool是VisionPro新增的一个非常重要的解码工具,能够在同一张图像中读取种类不同的一维码、多个同种类的二维码、以及一些高度旋转和有透视变形的码。与Barcode、2DSymbol、PDF417等读码工具相比,CogIDTool具有如下优点:

(1) 同时支持一维码和二维码的读取;

(2) 能够读取同一图像中种类不同的一维码;

(3) 支持最新的解码算法;

1) CogIDTool对一维码的支持

CogIDTool工具能够读取同一图像中的多个种类的1维码,在读取一维码的时候不需要训练。

2) CogIDTool对二维码的支持

CogIDTool工具能够定位和读2D Data Matrix码或QR Code码。CogIDTool工具同样能够读取图像中的多个二维码,但和读取一维码不同的是,这些二维码必须是同一种类。CogIDTool工具读取了图像中的多个QR码。

在使用CogIDTool工具的时候,你可以训练一些参数,例如:二维码的尺寸、二维码的编码种类、二维码的错误纠正方法等,以便能够重复成功读取二维码。如果你的应用中所有的二维码都具有相同的特征,推荐你对码事先进行训练;如果你的应用中,码的参数是变好的,此时你不需要训练参数,以确保CogIDTool在读码的时候能够包含所有的参数值。

3) CogIDTool工具对图像的要求CogIDTool工具读取一维码对图像有如下要求:

(1) 要读取的码的宽度要大于50个像素,码的每一个模块的宽度要少于50个像素;

(2) 对于一些非线性的码(码模块的宽度不同高度相同),每一个模块的宽度要大于1.6个像素,高度要大于50个像素。对邮政码(码模块的宽度相同高度不同),每一个模块的宽度要大于2.5个像素。

(3) 码的最小值静水带必须存在;

(4) 码模块和背景的对比度要大于32;

(5) 像素高度比不大于1.35:1;

二维码读取时对图像的要求比较低,一般来讲,需要在码四周的模块上周围有等宽度的静水带。

4) CogIDTool工具的解码算法

CogIDTool工具提供两种解码算法:

IDQuick:适用于快速读取一些质量较好的具有较高对比度的码。

IDMax:适用于读取一些图像质量不好的码。

CogIDTool工具默认采用IDMax算法。

5) CogIDTool工具的结果输出只有被正确解码的一维或二维码才会有结果输出,对于成功读取到的码,会输出以下结构:

(1) 会以弧度的度的方式输出读取到的码的方向;

(2) 会输出码的中心点的X、Y坐标;

(3) 会输出码的四个角点的X、Y坐标;

(4) 会以字符串的形式输出读取到的码;

(5) 国际标准化组织的代码和修饰符;

CogOCRMaxTool

CogOCRMaxTool是字符读取工具,能够根据已训练的字符样本读取灰度图像中的字符,并返回读取结果。

在使用COgOCRMaxtool工具读取字符的时候,需要设置字符区域,每个字符的最大最小宽度等参数。在字符读取之前需要首先进行字符分割和字符训练,下面分别进行介绍:

1) 字符分割:

字符分割的过程就是将字符像素从背景像素中分离出来,然后将这些分离后的字符像素分割成独立的符号,CogOCRMaxTool工具支持一套参数,这些参数指示如何把字符和背景以及字符和字符分割开,这些参数的设置需要考虑多种因素,如字符之间的距离、字符的种类、图像的质量等,通常情况下,默认的分割参数不能将字符充分分割。需要不断的尝试着修改分割参数,直到字符能够充分分割。

2) 字符分类

字符分类的过程就是为每一个分割的字符训练一个最佳匹配字符。新添加CogOCRMaxTool工具是没有训练字符的。可以从文件中调用已经存在的字符文件或临时添加字符集,添加字符集是一个不断重复的过程,需要添加所有需要读取的字符,只有在训练字符集中存在的字符才能够被成功读取。对于未训练的字符则不能成功读取。

应用场景

读取生产日期,生产中产品的序列号……

添加图像

参数介绍

点击提取线

添加预期文本

添加和调整

字体

加载和保存

把训练出来的字体库保存

可以点击添加字体库

区段

调整字体宽度

总结:

1. 多行字符进行OCR识别,需要添加多个OCR工具

2. 字符出现在视野中位置不确定时,需要选择合适的特征进行定位

3. OCR工具识别区域框有方向,保证训练方向和识别方向一致

4. OCR工具的字符库允许保存、加载

相关文章:

  • MyBatis:从入门到深度理解
  • 深度解析 IDEA 集成 Continue 插件:提升开发效率的全流程指南
  • 【python基础知识】Day26 函数
  • Yeoman实战指南:从零打造自定义项目生成器
  • 人工智能100问☞第23问:卷积神经网络(CNN)为何擅长图像处理?
  • 最新网盘资源搜索系统,电视直播,Alist聚合播放
  • QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示(实操部分)
  • DevExpressWinForms-TreeList-数据绑定
  • 如何在Edge浏览器里-安装梦精灵AI提示词管理工具
  • OrangePi Zero 3学习笔记(Android篇)10 - SPI和从设备
  • 二程运输的干散货船路径优化
  • 2025年山东省数学建模F题思路
  • 精益数据分析(61/126):移情阶段评分体系构建与实战案例解析
  • MySQL 用户权限管理:从入门到精通
  • 2025年5月-信息系统项目管理师高级-软考高项-成本计算题
  • WebSocket:实时通信(如聊天应用)从零到一的深度解析
  • Cursor打开的文件中文乱码,应该怎么设置
  • 提高绳牵引并联连续体机器人运动学建模精度的基于Transformer的分段学习方法
  • Maven 插件参数注入与Mojo开发详解
  • Secs/Gem第七讲(基于secs4net项目的ChatGpt介绍)
  • 人民日报整版聚焦:外贸产品拓内销提速增量,多地加快推动内外贸一体化
  • 钕铁硼永磁材料龙头瞄准人形机器人,正海磁材:已向下游客户完成小批量供货
  • 经济日报整版聚焦:上海构建法治化营商环境,交出高分答卷
  • 首映|奥斯卡最佳国际影片《我仍在此》即将公映
  • 超新星|18岁冲击中超金靴,王钰栋的未来无限可能
  • 英国收紧移民政策,技术工作签证、大学招生面临更严要求