Halcon Blob分析流程及案例介绍

提示:本篇文章参考了网上其他文章,如有侵权,请联系作者。


前言

       Halcon中的Blob分析是最常见、最常用的方法,本篇文章会介绍Blob的相关概念,并通过案例来展示Blob分析的流程。


一、什么是Blob分析

       图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。
       Blob,即binary large objec,二进制大型对象,是事务处理过程中遇到的一些大型的、复杂的数据项,必须作为一个完整的数据项看待。如一幅图形、一帧图像、一段语言等。在计算机视觉中的Blob是指图像中的具有相似颜色、纹理等特征所组成的一块连通区域。
       Blob分析(Blob Analysis)是对图像中相同像素的连通域进行分析(该连通域称为Blob)。其过程其实就是将图像进行二值化,分割得到前景和背景,然后进行连通区域检测,从而得到Blob块的过程。简单来说,blob分析就是在一块“光滑”区域内,将出现“灰度突变”的小区域寻找出来。
       如下图这块布料,表面纹理比较均匀。如果这块布料上面没有瑕疵,那么,我们是检测不到“灰度突变”的;相反,如果在布料生产过程中,由于种种原因,形成孔洞、裂缝,那么,我们就能在这块布料上面检测到纹理,经二值化(Binary Thresholding)处理后的图像中色斑可认为是blob。而这些部分,就是生产过程中造成的瑕疵,这个过程,就是Blob分析。
在这里插入图片描述
       Blob分析工具可以从背景中分离出目标,并可以计算出目标的数量、位置、形状、方向和大小,还可以提供相关斑点间的拓扑结构。在处理过程中不是对单个像素逐一分析,而是对图像的行进行操作。图像的每一行都用游程长度编码(RLE)来表示相邻的目标范围。这种算法与基于像素的算法相比,大大提高了处理的速度。
       适用范围:针对二维目标图像和高对比度图像,适用于有无检测和缺陷检测。常用于二维目标图像、高对比度图像、存在/缺陷检测、数值范围和旋转不变性需求。显然,纺织品的瑕疵检测,玻璃的瑕疵检测,机械零件表面缺陷检测,可乐瓶缺陷检测,药品胶囊缺陷检测等很多场合都会用到blob分析。
       另一方面,Blob分析并不适用于以下图像:
       1、低对比度图像;
       2、必要的图像特征不能用2个灰度级描述; ·
       3、按照模版检测 (图形检测需求)
       Blob分析的优势是其超灵活性,其来源于HALCON提供的巨大数量的算子。再者,这些方法有这很好的性能。许多blob分析的方法可以与一些其他视觉任务想结合,例如可以作为感兴趣区域的灵活生成的一些预处理步骤。

二、Blob分析流程

1.基本步骤

       下图是Blob分析的基本步骤,这是一种理想状态,也是最基本的套路,获取图像->分割图像(区分前景像素和背景像素)->特征提取(比如面积、重心、旋转角度等)。
       halcon代码实现如下:
       read_image(Image,‘particle’)
       threshold(Image, BrightPixels,120,255)//阈值分割算子
       connection(BrightPixels,Particles)//断开联通区域
       area_center(Particles,Area,Row,Column)
       实际上,提取Blob之前和分析Blob之后也存在重要的步骤。比如,提取Blob之前一般要对图像进行预处理,比如图像的变换和校正、平滑与去噪、以及增强处理;分析Blob之后需要将Blob进行选取,或者将Blob重心的像素值向物理坐标系坐标值的转化。
在这里插入图片描述
       因此,Blob实现方法需要具体情况具体分析。就拿阈值分割提取Blob而言,是用固定阈值还是动态阈值,这都是根据图片情况进行具体分析的。

2.扩展概念

       在实际应用中,Blob 的分割会很复杂,需要处理更多步骤。 其原因有多种,比如杂乱或不均匀的照明、图像中有很多杂斑(很难提取目标位)。 此外,对Blob进行后处理以获取客户需要的直观显示数据,例如将特征转换为真实世界单位或结果可视化。
在这里插入图片描述
       这个过程可以总结为:获取图像->应用ROI->定位ROI->矫正图像->图像预处理->动态获取分割参数->分割图像->处理区域->特征提取->将像素坐标转换到世界坐标->结果显示或者输出。
       以halcon自带案例ball.hdev为例(开运算),展示分析过程。完整代码如下:

* ball.hdev: Inspection of 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值