机器视觉中Blob分析
一.概念
在计算机视觉中的Blob(Binary large object)是指图像中的具有相似颜色、纹理等特征所组成的一块连通区域,一般来说,该区域就是图像中的前景。
举例来说,假如现在有一块刚生产出来的玻璃,表面非常光滑,平整。如果这块玻璃上面没有瑕疵,那么,我们是检测不到“灰度突变”的;相反,如果在玻璃生产线上,由于种种原因,造成了玻璃上面有一个凸起的小泡、有一块黑斑、有一点裂缝。
blob分析应用案例:纺织品的瑕疵检测,玻璃的瑕疵检测,机械零件表面缺陷检测,可乐瓶缺陷检测,药品胶囊缺陷检测等场合。
因此,Blob分析其实就是将图像二值化,分割得到前景和背景,然后进行连通区域检测以及面积、周长重心等特征的分析,从而得到Blob的过程。
Blob分析就是对这一块连通区域进行几何分析得到一些重要的几何特征,例如:区域的面积、中心点坐标、质心坐标、最小外接矩形、主轴等。
可以从背景中分离出目标,并可以计算出目标的数量、位置、形状、方向和大小,还可以提供相关斑点间的拓扑结构。
二.步骤
1.图像分割
将图像分离为目标像素和背景像素,初始分割之后一般需要进行形态学处理才能满足使用要求。
常用分割方法:直接输入;硬阈值分割;软阈值分割。
常用形态学处理:连通、膨胀、腐蚀、开操作、闭操作、顶帽变换、击中与不击中变换、交集、差异、骨架、边界等。
阈值分割又包括:
1)简单阈值分割threshold
适用范围:目标与背景之间存在灰度差(如果环境稳定,阈值可以在离线状态下一次确定)
2)动态阈值分割dyn_threshold
适用范围:背景不均一无法确定全局阈值、目标经常表现为比背景局部亮一些或者暗一些。这时候需要通过其领域来找到一个合适的阈值进行分割。
确定其领域的方法是:通过一些平滑滤波算子来确定领域,例如mean_image或者binomial_filter
3)自动全局阈值方法bin_threshold
4)watersheds_threshold
2.Blob分析技术
去噪:图像的形态学处理,常见有:膨胀(dilate),腐蚀(erose),开操作(open),闭操作(close)。
通性分析:将目标从像素级转换到连通分量级。
特征值计算:对每个目标进行特征量计算,包括面积、周长、质心坐标等特征。
场景描述:对场景中目标之间的拓扑关系进行描述。
如下图所示:左边是一副原始图片,右边彩线包围区域是是获取的Blob区域,每个区域中十字的位置是Blob分析所得的重心位置。