扩视机器视觉—Halcon机器视觉48个实战项目二(检测焊点有无粘连)

该文章介绍了一个使用Halcon进行图像处理的项目,目标是检测线束行业的焊接点是否有粘连。通过读取图像、灰度转换、阈值处理、形态学操作等一系列步骤,找出并分析焊点,最终根据焊点数量判断产品状态,输出‘OK品’或‘NG品’的判定结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需求:

此项目halcon检测线束行业的焊接点处有无粘连,并显示。

素材如下:

在这里插入图片描述

检测后的效果如下:

在这里插入图片描述

halcon代码如下:

read_image (Image8, '碗光 (3)')
dev_set_draw ('fill')
set_display_font (200000, 25, 'mono', 'true', 'false')
rgb1_to_gray (Image8, GrayImage)
threshold (GrayImage, Regions, 0, 75)
fill_up (Regions, RegionFillUp)
opening_rectangle1 (RegionFillUp, RegionOpening, 10, 10)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 0, 1.80556e+006)
select_shape (SelectedRegions, SelectedRegions1, ['area','rectangularity'], 'and', [67870.4,0.68426], [95833.3,1])
smallest_rectangle2 (SelectedRegions1, Row, Column, Phi, Length1, Length2)
shape_trans (SelectedRegions1, RegionTrans, 'rectangle2')
gen_rectangle2 (Rectangle, Row-418, Column-90, Phi, Length1, Length2-9)
reduce_domain (GrayImage, Rectangle, ImageReduced)
mean_image (ImageReduced, ImageMean, 15, 15)
threshold (ImageMean, Region, 125, 255)
connection (Region, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 176.85, 10000.81)
smallest_rectangle2 (SelectedRegions2, Row1, Column1, Phi1, Length11, Length21)
gen_rectangle2 (Rectangle1, Row1, Column1, Phi1, Length11, Length21)
sort_region (Rectangle1, SortedRegions, 'first_point', 'false', 'row')
count_obj (SortedRegions, Number1)
dev_set_draw ('margin')
count_obj (Rectangle1, Number)
dev_display (GrayImage)
dev_display (Rectangle1)

status:=false
dev_set_line_width (3)
for Index := 1 to Number1 by 1
select_obj (SortedRegions, ObjectSelected, Index)
area_center (ObjectSelected, Area, Row2, Column2)
if (Area>=1800)
status:=true
dev_set_color ('red')
gen_circle (Circle, Row2, Column2, 50.5)
endif
endfor
if (status==false)
set_tposition (200000, 100, 100)
write_string (200000, 'OK品---'+'焊点个数:'+ Number)
else
set_tposition (200000, 100, 100)
write_string (200000, 'NG品---'+'焊点个数:'+ Number)
endif

详细视频如下:

点击》》》》》观看此项目详细视频,学习快速项目开发思想套路。

<think>嗯,用户想了解如何使用传统算法实现3D PCB焊点缺陷检测的详细介绍。我需要先整理传统方法的主要步骤和技术。首先,3D检测通常涉及到点云或高度图的数据获取,所以可能需要使用结构光或者激光扫描仪。然后,预处理步骤可能包括去噪和配准,比如中值滤波、高斯滤波,以及ICP算法。 接下来是特征提取,传统的算法可能会用几何特征,比如高度、体积、表面积,或者统计特征如均值、方差。形态学分析也可能用到,比如腐蚀膨胀来分离粘连区域。缺陷分类部分,SVM、随机森林这些机器学习方法可能被应用,或者设置阈值来判断异常。 然后需要考虑传统算法的优缺点,比如计算效率高但依赖特征设计,鲁棒性可能不如深度学习。同时,用户提供的引用资料提到了YOLO和Halcon,可能用户也了解一些现代方法,但这里需要专注于传统算法。要确保回答结构清晰,分步骤说明,并引用提供的资料中的相关内容,比如PCB缺陷类型,比如开路、短路等,可能传统方法处理这些有不同的策略。最后生成相关问题,可能涉及与传统方法对比,或者具体步骤的深入问题。</think>### 3D PCB焊点缺陷检测传统算法实现详解 #### 1. **数据采集与预处理** - **3D成像技术**:使用结构光扫描、激光三角测量或立体觉技术获取焊点三维点云数据,生成高度图或深度图[^3]。 - **去噪处理**:采用中值滤波器或高斯滤波器消除传感器噪声,例如对高度图进行$G(x,y) = \frac{1}{2\pi\sigma^2}e^{-(x^2+y^2)/2\sigma^2}$卷积运算。 - **点云配准**:通过ICP(迭代最近点)算法对齐多角扫描数据,建立完整3D模型。 #### 2. **特征提取与分析** - **几何特征计算**: - 焊点高度:$H = \max(z_i) - \min(z_i)$ - 体积计算:$V = \sum_{i=1}^n \Delta x \Delta y z_i$ - 表面曲率分析:$C = \frac{\lambda_{\text{min}}}{\lambda_{\text{max}}}$(基于主成分分析) - **形态学处理**: - 使用开运算消除毛刺:$A \circ B = (A \ominus B) \oplus B$ - 闭运算填充孔洞:$A \bullet B = (A \oplus B) \ominus B$ #### 3. **缺陷检测算法** - **阈值判定法**: $$ \text{缺陷标志} = \begin{cases} 1, & \text{if } |H - H_{\text{ref}}| > \Delta H_{\text{th}} \\ 1, & \text{if } V < V_{\text{th}} \\ 0, & \text{otherwise} \end{cases} $$ - **模板匹配**:计算待测焊点与标准模板的Hausdorff距离: $$ D_{\text{HD}}(A,B) = \max\left(\sup_{a \in A} \inf_{b \in B} d(a,b), \sup_{b \in B} \inf_{a \in A} d(a,b)\right) $$ #### 4. **分类与决策** - 使用支持向量机(SVM)构建分类超平面: $$ f(x) = \text{sign}\left( \sum_{i=1}^n \alpha_i y_i K(x_i,x) + b \right) $$ - 基于随机森林的多特征融合决策: $$ P(c|X) = \frac{1}{N_{\text{tree}}} \sum_{t=1}^{N_{\text{tree}}} P_t(c|X) $$ #### 5. **传统算法特点** - **优势**:计算效率高(时间复杂度$O(n)$),无需大规模标注数据 - **局限**:依赖人工设计特征,对复杂缺陷(如虚焊、微裂纹)检出率低于深度学习方法[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扩视机器视觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值