PCB 小方格对齐情况缺陷检测

Viewed 58
1 Answers

先上运行结果图,红点为检测出有问题方块:
image.png
image.png

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

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

定位后的效果图:
image.png

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

image.png

image.png

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

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