摘要:本文聚焦 C# 与 HALCON 在机器视觉领域的应用,深入阐述圆形膨胀(dilation_circle)与圆形腐蚀(erosion_circle)算子原理,以 PCB 焊点缺陷检测为案例,展示对二值化图像进行膨胀填补断裂、腐蚀去除毛刺,结合 connection 算子分割粘连区域并统计缺陷数量的过程。同时介绍通过 Modbus 协议实现 C# 与 PLC 联动分拣 NG 品,以及性能优化、异常处理和跨平台集成的方法,为相关领域实践提供参考。
文章目录
- 【C# + HALCON 机器视觉】HALCON经典算子:圆形膨胀(dilation_circle)与圆形腐蚀(erosion_circle)
-
- 一、引言
- 二、圆形膨胀(dilation_circle)与圆形腐蚀(erosion_circle)算子原理
-
- 2.1 形态学操作基础
- 2.2 圆形膨胀(dilation_circle)
- 2.3 圆形腐蚀(erosion_circle)
- 2.4 圆形膨胀与圆形腐蚀的关系
- 三、应用场景:PCB焊点缺陷检测
-
- 3.1 PCB焊点缺陷类型
- 3.2 圆形膨胀与圆形腐蚀在PCB焊点缺陷检测中的应用
- 四、案例:连接断裂焊点或消除微小噪声
-
- 4.1 案例需求分析
- 4.2 实操流程
-
- 4.2.1 环境准备
- 4.2.2 代码实现
- 4.2.3 代码解释
- 4.2.4 执行结果展示
- 4.3 性能优化
- 4.4 异常处理
- 五、C#集成:通过Modbus协议与PLC联动,触发NG品分拣
-
- 5.1 Modbus协议简介
- 5.2 实操流程
-
- 5.2.1 环境准备
- 5.2.2 代码实现
- 5.2.3 代码解释
- 5.3 跨平台集成
-
- 5.3.1 Halcon导出C#代码
- 5.3.2 与ROS对接
- 5.3.3 与PLC对接
- 六、总结与展望
【C# + HALCON 机器视觉】HALCON经典算子:圆形膨胀(dilation_circle)与圆形腐蚀(erosion_circle)
关键词:C#;HALCON;圆形膨胀;圆形腐蚀;PCB 焊点检测;Modbus 协议;机器视觉
一、引言
在现代工业制造领域,机器视觉技术发挥着至关重要的作用,特别是在产品质量检测方面。PCB(Printed Circuit Board,印刷电路板)作为电子设备的核心部件,其质量直接影响着电子设备的性能和稳定性。因此,对PCB焊点进行高效、准确的缺陷检测显得尤为重要。
HALCON作为一款功能强大的机器视觉软件库,提供了丰富的图像处理算子,能够满足各种复杂的视觉检测需求。其中,圆形膨胀(dilation_circle
)和圆形腐蚀(erosion_circle
)是两个经典的形态学操作算子,在PCB焊点缺陷检测中有着广泛的应用。
本文将详细介绍圆形膨胀和圆形腐蚀算子的原理、应用场景,并结合实际案例,展示如何使用C#集成HALCON来实现PCB焊点缺陷检测,同时给出性能优化、异常处理和跨平台集成的相关建议和实现方法。
二、圆形膨胀(dilation_circle)与圆形腐蚀(erosion_circle)算子原理
2.1 形态学操作基础
形态学操作是基于图像的形状进行的处理,主要用于图像的预处理、分割、特征提取等方面。形态学操作的基本思想是用一个结构元素(通常是一个小的二值图像)对输入图像进行遍历,根据结构元素与输入图像的相对位置关系来改变图像的像素值。
2.2 圆形膨胀(dilation_circle)
圆形膨胀是一种形态学膨胀操作,其作用是将图像中的物体边界向外扩展。在圆形膨胀操作中,使用一个圆形的结构元素对输入图像进行遍历,当结构元素与输入图像的某个像素位置重叠时,如果结构元素覆盖的区域内至少有一个像素值为前景(通常为白色),则将该像素位置的像素值设置为前景。
圆形膨胀的数学定义如下:
设输入图像为 A A A,结构元素为 B B B,圆形膨胀操作可以表示为 A ⊕ B A \oplus B A⊕B,其中:
( A ⊕ B ) ( x , y ) = max ( i , j ) ∈ B { A ( x − i , y − j ) } (A \oplus B)(x,y) = \max_{(i,j) \in B} \{ A(x - i, y - j) \} (A⊕B)(x,y)=(i,j)∈Bmax{
A(x−i,y−j)}
圆形膨胀的主要作用包括:
- 填补物体内部的小孔和断裂区域。
- 连接相邻的物体。
- 增大物体的面积和尺寸。
2.3 圆形腐蚀(erosion_circle)
圆形腐蚀是一种形态学腐蚀操作,其作用是将图像中的物体边界向内收缩。在圆形腐蚀操作中,使用一个圆形的结构元素对输入图像进行遍历,当结构元素与输入图像的某个像素位置重叠时,如果结构元素覆盖的区域内所有像素值都为前景(通常为白色),则将该像素位置的像素值设置为前景,否则设置为背景(通常为黑色)。
圆形腐蚀的数学定义如下:
设输入图像为 A A A,结构元素为 B B B,圆形腐蚀操作可以表示为 A ⊖ B A \ominus B A⊖B,其中: