首页 理论教育 PCB自动光学检测中脊线算法比较

PCB自动光学检测中脊线算法比较

时间:2023-10-26 理论教育 版权反馈
【摘要】:为了找到“地形学”中所谓的中脊线,常见的方法包括骨架算法、细化算法以及分水岭算法。图9.19二值图形图9.20骨架图形本书尝试通过对原图进行距离变换,经过骨架算法获取分脊线,具体情况如图9.21所示。图9.22细化结果图分水岭算法以图像的梯度作为输入,输出连续的、单像素宽度的边缘线,能够对图像进行快速,准确的分割。分水岭算法以及其改进算法作为本书重点介绍的缺陷识别算法,本章接下来的章节将会详细介绍。

PCB自动光学检测中脊线算法比较

为了找到“地形学”中所谓的中脊线,常见的方法包括骨架算法、细化算法以及分水岭算法。在缺陷识别算法当中,如何通过合适的方法找到中脊线至关重要。

骨架算法作为模式识别算法的一种,其应用广泛。实验中通过采用骨架算法,其主要方法是在梯度变换的基础上,通过在高一维空间中生成的距离曲面形成的脊线来构建骨架。

令M表示一个区域点的集合,qn表示其边界点的集合,O是Q内任意的一点,N表示qn上到O距离最近的点,即对于任意的T∈qM,总存在/ON/≤/OT/。如果在qn上,存在到O距离最近的点数多于一个,即

则称P为指定区域M的一个骨架点,所有骨架点构成的区域即为区域M的骨架。

本书利用中轴变换结合形态学的方法有效提取骨架点。通过计算每个像素的最大领域值,设定模板为3×3的比较区间,设定一定的误差范围,遍历指定区域,判断该范围中心是否为最大距离值点。所得中心点为最大距离值点的像素即为骨架点。

通过对图9.19进行骨架提取,得到图9.20的结果。图9.19表示像素为1代表目标区域,像素值为0代表背景区域。图9.20中椭圆区域即为最终骨架。

图9.19 二值图形

图9.20 骨架图形

本书尝试通过对原图进行距离变换,经过骨架算法获取分脊线,具体情况如图9.21所示。实验发现骨架算法容易受到噪声干扰,骨架连续性存在不完整的情况。

细化算法作为形态学处理的一种方法,主要通过一层层剥离原始形状,从而保留图像骨架的一种算法。通过定义一组细化结构元进行匹配,其中针对细化的一种表达方式为以结构元序列为基础:

(www.xing528.com)

其中B代表结构元,Bi是Bi-1旋转后的形式。

图9.21 电路板骨架算法后图像

通过将结构元依次与原图进行细化,其间每个结构元通过遍历的形式,完成结构元对应的每一个区域的细化,其计算公式如下:

其中A对应的原图,{B}代表结构元序列。

与此同时,在对原图进行边缘提取的同时,由于阈值的选择不同容易产生误判,

阈值大小对边缘精度影响很大,通过细化算法,从八个方向对边缘进行骨架抽取,从而提高精度。实验发现,效果虽然较之前骨架算法有明显改善,但针对局部区域的细化仍然存在不平滑性以及误判性。如图9.22所示即为细化图,其中(a)为原图,(b)为细化叠加图

分水岭算法是基于数学形态学的一种图像分割方法,其基本思想源于地形学。将梯度幅值图像看作一幅地形图,梯度幅值对应地形图中的海拔高度,图像中不同梯度的区域对应于山峰和山谷间盆地。假设在各个局部极小值点的位置打一个洞,然后将地形图渐进入湖中,全局极小点的盆地先进水,水位逐渐漫过盆地,当相邻两个盆地的水即将合并时,在两个盆地间建筑堤坝拦截。这个过程将图像分割成不同的盆地区域,分水岭就是分隔这些盆地的堤坝。

图9.22 细化结果图

分水岭算法以图像的梯度作为输入,输出连续的、单像素宽度的边缘线,能够对图像进行快速,准确的分割。分水岭算法以及其改进算法作为本书重点介绍的缺陷识别算法,本章接下来的章节将会详细介绍。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈