read_image (Bond, ’die3’)
threshold (Bond, Bright, 120, 255) shape_trans (Bright, Die, ’rectangle2’)
虚焊的像素由于使用门限失去的可以通过赫尔计算恢复。由于虚焊是矩形的,可能有些轻微的变动在收集的过程中,我们可以使用最小的长方形作为赫尔。
现在你可以开始分割焊点的线和连接点。因为只有这部分区域是我们感兴趣,你可以将分割只限定在这部分区域。所有的像素低的区域是属于连接线。不幸的是还有一些像素高的区域是分割没有发现的。你可以使用fillupshape来填充哪些区域。在这种情况下,这个区域使用某种大小得象素值填充。
reduce_domain (Bond, Die, DieGray) threshold (DieGray, Wires, 0, 100) fill_up_shape (Wires, WiresFilled, ’area’, 1, 100) opening_circle (WiresFilled, Balls, 15.5) connection (Balls, SingleBalls)
select_shape (SingleBalls, IntermediateBalls, ’circularity’,and,0.85, 1.0) sort_region (IntermediateBalls, FinalBalls, ’FirstPoint’, ’True’, ’column’) smallest_circle (FinalBalls, Row, Column, Radius)
因为连接点比连接线要厚,你可以简单使用opening来清除它们。直径(15.5)应该是对应连接点的直径最小值。在这两幅图你都可以看到有灰色长方形区域所产生的区域。这可以通过一个shape分割来压缩它。在实际情况中,一个被探测的焊点总是出现它应该出现的地方。图5.10显示了整个分割的过程。
图5.10 探测的焊点位置