• Halcon实用:焊点检出设计思路


    一、提要

    本文是Blob示例之一,利用灰度阈值进行的分割的方法,进行焊点检测的算法思路。

    二、问题分析

    电路板的图片如下:焊点是上面黑色圆形区域。

     问题分析:

    1)包含焊点的区域确定

    焊点为暗色目标区域\Omega,而焊点的分布区域在较亮区域W,\Omega \subset M,因此,需要将大集合M优先提出。

    1. *灰度处理 二值化
    2. threshold (Bond, Bright, 100, 255)
    3. *形态学处理 一般用于定位,形状转换,rectangle2带方向的矩形
    4. shape_trans (Bright, Die, 'rectangle2')

    2) 通过浅区提取出背景M

    3)通过 shape_trans 将浅色区域的矩形取出。

    注意:以上将包含前景的区域提出来,缩小了搜索范围;以后操作在更小的区域上进行。通过reduce_domain将区域中的图像取出,准备进行第二次处理。

    reduce_domain (Bond, Die, DieGrey)

    4)在区域中暗区提取出来

    threshold (DieGrey, Wires, 0, 50)

    5)将焊点面积计算出,并获得区域

    *用给定的形状特征填充区域:面积为1~100的区域

    fill_up_shape (Wires, WiresFilled, 'area', 1, 100)

    6)将半径大于15.5圆形,通过开运算提取出

    opening_circle (WiresFilled, Balls, 15.5)

    7)将区域分离开来

    connection (Balls, SingleBalls)

    8)将圆度0.85以上的区域保留下来

    1. select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.85, 1.0)
    2. sort_region (IntermediateBalls, FinalBalls, 'first_point', 'true', 'column')

    9)将最小区域排序

    1. smallest_circle (FinalBalls, Row, Column, Radius)
    2. NumBalls := |Radius|
    3. Diameter := 2*Radius
    4. meanDiameter := sum(Diameter)/NumBalls
    5. mimDiameter := min(Diameter)
    6. dev_display (Bond)
    7. disp_circle (WindowID, Row, Column, Radius)
    8. dev_set_color ('white')
    9. for i := 1 to NumBalls by 1
    10. if (fmod(i,2)=1)
    11. disp_message (WindowID, 'D: '+Diameter[i-1], 'image', Row[i-1]-2.7*Radius[i-1], max([Column[i-1]-60,0]), 'white', 'false')
    12. else
    13. disp_message (WindowID, 'D: '+Diameter[i-1], 'image', Row[i-1]+1.2*Radius[i-1], max([Column[i-1]-60,0]), 'white', 'false')
    14. endif
    15. endfor

    10)结果输出:

     

  • 相关阅读:
    ubuntu/linux 安装用户软件添加到命令行或者app 各个目录作用
    (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
    2023!6招玩转 Appium 自动化测试
    强制删除文件?正确操作方法分享!
    Mybatis如何使用游标呢?
    MySQL 查询条件
    【GPTs分享】GPTs分享之 AskYourPDF Research Assistant​
    Linux学习-数组-一维数组
    rocky8安装docker步骤
    拆解qlib的dataset,使用代码方式加载数据集
  • 原文地址:https://blog.csdn.net/gongdiwudu/article/details/114283515