三张原图



结果图



source: https://www.51halcon.com/forum.php?mod=viewthread&tid=6834&extra=page%3D1
先上运行结果图,红点为检测出有问题方块:


第一、三张尺寸近似,可以使用相同的模板
第二张较小,不能和一三使用相同的模板,更新模板后没有检测出问题方块

step1.使用灵闪中的“多模板定位”工具,设置模板找到完整的方块。可以得到方块的中心点和倾斜角度。
参数如下图:

定位后的效果图:

step2.使用灵闪中的“点阵排序”工具,“待排序点”选择“多模板定位:中心”,得到排序的矩阵。可以打开“补全缺失点”自动“-1”补齐矩阵。


step3.使用“矩阵计算”工具,可以自己写python脚本实现,角度和排列是否整齐的筛选。

import numpy as np
img = [图像增强.输出图像]
sort_index = [点阵排序.序号列表]
sort_xy = [点阵排序.序号矩阵]
box_center_list = [多模板定位.中心]
box_angle_list = [多模板定位.角度]
# 找到角度不齐的box
angle_mean = sum(box_angle_list) / len(box_angle_list)
angle_wrong_list = []
for index in sort_index:
index = int(index)
angle = box_angle_list[index]
if not angle_mean - 2 < angle < angle_mean + 2:
angle_wrong_list.append(index)
for index in angle_wrong_list:
x = int(box_center_list[index * 2])
y =int(box_center_list[index * 2 + 1])
img[(y-5):(y+5), (x-5):(x+5)] = [0,0,255]
Result = img
灵闪作业:PCB方块对齐检测.task