• 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)结果输出:

     

  • 相关阅读:
    Mysql高级语句(视图表 、存储过程、条件语句、循环语句)
    【第二章 SQL-DDL(查询、创建、删除、使用数据库)(查询、创建数据库中的表)】
    leetCode热题100——两数之和(python)
    辅助驾驶功能开发-功能对标篇(2)-NGP领航辅助系统-小鹏
    抓包工具fiddler
    使用ebpf 监控linux内核中的nat转换
    Java中的异常
    STM32--人体红外感应开关
    sql语法巧用之not取反
    汽配制造的智能化转型,百度智能云与海力达释义 “数实融合”
  • 原文地址:https://blog.csdn.net/gongdiwudu/article/details/114283515