Halcon胶线检测—模板匹配、位姿变换、胶宽,胶连续性检测

保姆级教程:用Halcon模板匹配搞定PCB板上的胶路检测(附完整代码) 本文详细介绍了如何利用Halcon模板匹配技术实现PCB板上胶路的自动化检测,包括模板匹配定位、位姿变换校正和卡尺工具测量等核心步骤。通过完整的代码示例和参数配置建议,帮助工程师快速掌握胶宽和胶连续性检测的关键技术,提升电子制造业的质量控制效率。 阅读详情
AI摘要

本文详细介绍了使用Halcon进行图像处理,包括创建模板、模板匹配、仿射变换、区域提取和卡尺测量等步骤,以实现胶宽的精确测量,并检查胶路连续性。通过对图像进行一系列操作,最终确定胶宽是否满足要求,并展示测量结果。

首先,设置卡尺测量的规格,同时基于图像特征创建模板,用于识别定位图像。

*胶宽最小值
MinValue:=19
MaxValue:=20
*卡尺矩形的一半长度
MeasureLength:=20
*卡尺矩形的一半宽度
MeasureWidth:=10
*平滑系数
Sigma:=3
*阈值
MeasureThreshold:=80
read_image (Image1, 'D:/00-halcon程序代码/1/0.bmp')
rgb1_to_gray (Image1, Image0)
get_image_size (Image0, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width/4, Height/4, 'black', WindowHandle)
dev_display (Image0)
*创建模板
gen_rectangle2 (ROI_0, 1215.5, 807.5, rad(2.32782), 492.406, 501.267)
reduce_domain (Image0, ROI_0, ImageReduced)
dev_clear_window ()
dev_display (ImageReduced)
rgb1_to_gray (ImageReduced, ImageGray)
threshold (ImageGray, Region, 220, 255)
opening_rectangle1 (Region, RegionOpening, 5, 5)
closing_rectangle1 (RegionOpening, RegionClosing, 5, 5)
connection (RegionClosing, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 26051.2, 45246.8)
dilation_rectangle1 (SelectedRegions, RegionDilation, 7, 7)
area_center (RegionDilation, Area, Row, Column)
reduce_domain (ImageGray, RegionDilation, ImageReduced1)
create_scaled_shape_model (ImageReduced1, 'auto', -0.78, 0.78, 'auto', 0.7, 1.3, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
get_shape_model_contours (ModelContours, ModelID, 1)
vector_angle_to_rigid (0, 0, 0, Row, Column, 0, HomMat2D)
affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2D)

创建后的模板轮廓,经过放射变换投射到模板图像上,其如图所示:

然后基于图像特征匹配后,经过仿射变换,保持模板图像的位姿,在胶线区域创建ROI,基于卡尺工具进行胶宽和胶路连续性的测量。

* 读取图片文件
LineStartRs:=[]
LineStartCs:=[]
LineEndRs:=[]
LineEndCs:=[]
list_files ('D:/00-halcon程序代码/1', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
    rgb1_to_gray (Image, Image)
    * 进行模板匹配
    find_scaled_shape_model (Image, ModelID, -0.78, 0.78, 0.7, 1.3, 0.8, 1, 0.5, 'least_squares_high', 0, 0.9, Row1, Column1, Angle, Scale, Score)
    *位姿补正
    *图片仿射变换
    vector_angle_to_rigid (Row1, Column1, Angle,Row,Column,0, HomMat2D1)
    affine_trans_image (Image, ImageAffinTrans, HomMat2D1, 'constant', 'false')
    *模板轮廓仿射变换
    hom_mat2d_translate (HomMat2D1, Row1, Column1, HomMat2DTranslate)
    hom_mat2d_rotate (HomMat2DTranslate, Angle, Row1, Column1, HomMat2DRotate)
    hom_mat2d_scale (HomMat2DRotate, Scale, Scale, Row1, Column1, HomMat2DScale)
    affine_trans_contour_xld (ModelContours, ModelTrans, HomMat2DScale)
    *显示变换后的图片和轮廓
    dev_clear_window ()
    dev_display (ImageAffinTrans)
    dev_set_color ('red')
    dev_set_line_width (3)
    dev_display (ModelTrans)
    *四角含胶区域
    
    gen_rectangle2 (ROI_3, 1580.5, 1202.5, rad(4.28915), 80.2247, 80.1387)
    gen_rectangle2 (TMP_Region, 794.5, 1176.5, rad(-86.4237), 64.1249, 75.9578)
    union2 (ROI_3, TMP_Region, ROI_3)
    gen_rectangle2 (TMP_Region, 824.5, 396.5, rad(-176.906), 74.108, 74.216)
    union2 (ROI_3, TMP_Region, ROI_3)
    gen_rectangle2 (TMP_Region, 1612.5, 420.5, rad(4.28915), 80.2247, 78.9717)
    union2 (ROI_3, TMP_Region, ROI_3)
    *提取含胶的区域
    gen_circle (ROI_1, 1206.96, 804.712, 426.491)
    union2 (ROI_1, ROI_3, RegionUnion)
    difference (ROI_0, RegionUnion, RegionDifference)
    reduce_domain (ImageAffinTrans, RegionDifference, ImageReduced2)
    threshold (ImageReduced2, Region1, 0, 40)
    opening_rectangle1 (Region1, RegionOpening1, 7, 7)
    connection (RegionOpening1, ConnectedRegions1)
    select_shape (ConnectedRegions1, SelectedRegions2, 'contlength', 'and', 1000, 2000)
    dilation_rectangle1 (SelectedRegions2, RegionDilation1, 21, 21)
    *对含胶区域进行骨架操作
    *根据骨架完的点进行卡尺测量
    for Index2 := 1 to 4 by 1
        select_obj (RegionDilation1, ObjectSelected, Index2)
        skeleton (ObjectSelected, Skeleton)
        get_region_points (Skeleton, Rows1, Columns1)
        LineStartRs[Index2-1]:=Rows1[0]
        LineEndRs[Index2-1]:=Rows1[|Rows1|-1]
        LineStartCs[Index2-1]:=Columns1[0]
        LineEndCs[Index2-1]:=Columns1[|Columns1|-1]
    endfor
    *开始用卡尺进行测量
    create_metrology_model (MetrologyHandle)
    *预先设置了图像大小,以加速apply_metrology_model的第一次调用。 
    set_metrology_model_image_size (MetrologyHandle, Width, Height)
    *创建两个计量线对象并设置参数 
    add_metrology_object_line_measure (MetrologyHandle, LineStartRs, LineStartCs, LineEndRs, LineEndCs, MeasureLength, MeasureWidth, Sigma, MeasureThreshold, [], [], Index3)
    *****执行直线卡尺测量
    apply_metrology_model (ImageAffinTrans, MetrologyHandle)
    *****获取直线卡尺测量工具
    get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)
    get_metrology_object_measures (Contours5, MetrologyHandle, 'all', 'all', Row5, Column5)
    *获取测量结果轮廓
    get_metrology_object_result_contour (MeasuredLines, MetrologyHandle, 'all', 'all', 1.5)
    
    dev_clear_window ()
    gen_cross_contour_xld (Cross, Row5, Column5, 6, 0.785398)
    *开始判断胶宽是否满足要求,是否存在断胶、波浪胶的情况
    
    *****显示
    dev_set_color ('green')
    dev_set_line_width (1)
    dev_display (ImageAffinTrans)
    dev_display (Cross)
    dev_set_color ('blue')
    dev_display (MeasuredLines)
    *****清除卡尺工具句柄
    clear_metrology_model (MetrologyHandle)
    
    
    
endfor

 测量结果如图所示:

 

Halcon例程分析19:点胶质量-断胶、少胶、胶宽、胶路检测 打开halcon,按下ctrl+e打开halcon自带例程。应用范围->二维测量比较->apply_bead_inspection_model.hdev * This example shows how to use bead inspection to verify * adhesive beads. Bead inspection can be used to detect the * following errors: * - segments where adhesive is m 阅读详情

相关推荐

Halcon胶路检测实战:从模板匹配到卡尺测量的全流程解析

本文详细解析了Halcon在胶路检测中的全流程应用,从模板匹配到位姿变换再到卡尺测量,实现毫米级精度的胶宽和胶连续性检测。通过实战案例分享参数调优技巧和缺陷判定逻辑,帮助工程师快速掌握工业视觉检测核心技术,提升生产线自动化水平。

weixin_30225755的博客 199

Halcon——热熔胶质量检测

点胶质量检测1. 项目背景2. 具体需求3. 代码案例3.1 halcon代码3.2 自定义函数3.3 完整代码和图片下载 1. 项目背景 UV点胶机电热熔胶工位,点胶之后还需要对胶水进行检测,这属于缺陷检测的范畴了。 下面这张图像是使用UV线光源从上面打光得到的图像效果,从图像中可以看到,热熔胶由于添加了荧光剂,被UV光源打亮,而电池的其他部分比较暗。 下面这张图像是利用背光源从底下打光,而上面UV光源此时处于关闭状态。这和上一张图像是同一块电池,只不过使用的光源不同。这张图像可以帮助我们定位电池的位

MechMaster 5618

Halcon工业视觉检测:圆心与直线测量实战技巧

机器视觉在工业自动化中扮演着关键角色,其中圆心和直线测量是基础而重要的功能。通过图像预处理、亚像素边缘提取和几何拟合等核心技术,可以实现高精度的尺寸测量。在工业场景中,这些技术需要结合噪声抑制、抗干扰设计和异常处理等工程实践,才能保证系统的稳定性和可靠性。本文以Halcon为例,分享了工业视觉检测中的圆心与直线测量实战经验,包括预处理优化、亚像素边缘提取参数设置、圆形拟合算法选择等关键技术点,以及光照方案设计、常见故障排查等实用技巧。这些内容源自数十个工业项目的实战积累,特别适合从事质量控制、自动化检测的工

weixin_34417183的博客 353

Http上传 vs Ftp上传

1:Http上传 http上传就是通过http协议来向服务器上传文件,所以服务器端应该有一个处理客户端请求的页面。 添加一个FileUploadHandler.ashx的文件来处理客户端请求。代码如下:   /// <summary> /// FileUploadHandler 的摘要说明 /// </summary> public class FileUpl...

weixin_33724570的博客 285

Halcon机器视觉实战:15种工业缺陷检测算法解析与应用

本文深入解析了Halcon在工业缺陷检测领域的15种核心算法与应用实战。从表面划痕、凹坑到几何毛刺、缺口,详细阐述了动态阈值、频域滤波、形态学处理及模板匹配等关键技术的实现原理与参数调优技巧。文章强调Halcon作为工业视觉的“瑞士军刀”,通过高效的算子封装与算法组合策略,能有效应对复杂多变的工业现场检测需求,提升检测精度与开发效率。

weixin_29062613的博客 158

OpenCV仿Halcon形状匹配算法:工业级模板匹配实现与优化

机器视觉定位中,模板匹配是基础且核心的技术。然而传统灰度相关匹配在光照变化、旋转缩放等工业场景下鲁棒性不足。基于梯度方向的形状匹配通过描述物体轮廓的几何特征,实现对光照变化和部分遮挡的强鲁棒性,并借助图像金字塔实现由粗到精的高效搜索,广泛应用于零件定位、缺陷检测等工业视觉场景。针对工业级应用需求,深入剖析形状匹配算法的原理,并基于OpenCV C++详细给出复现类似Halcon SBM的完整思路与工程优化要点,涵盖多角度多尺度模板扩展、金字塔加速策略、候选点管理及性能调优,帮助开发者搭建可实际落地的形状匹配

weixin_34007906的博客 712

基于 Halcon 的工业零件表面缺陷检测

基于 Halcon 的工业零件表面缺陷检测是一个复杂而具有挑战性的应用,通过深入理解其原理并结合各种先进的图像处理和分析技术,可以不断提高检测系统的性能和可靠性,满足现代工业生产对高质量产品的需求。以上代码示例仅为基础框架,在实际应用中,还需要根据具体的工业场景和零件特性进行大量的优化和调整工作,以确保检测的准确性和稳定性。你可以根据实际情况进一步完善和扩展该代码,以适应不同的工业检测需求。

m0_44975814的博客 2845

Halcon 实战:Region角度计算与图像定位优化

本文深入探讨了Halcon在工业视觉检测中的Region角度计算方法与图像定位优化策略。详细介绍了smallest_rectangle2、orientation_region等核心算子的应用场景,并分享了预处理、多方法交叉验证等实战技巧,帮助提升工业视觉系统的精度与效率。

weixin_29230901的博客 373

一文学会,胶位偏移、缺胶、断胶、溢胶检测

点胶质量(胶位偏移、缺胶、断胶、溢胶)检测(基于Halcon图像处理平台)apply_bead_inspection_model;create_bead_inspection_model;apply_bead_inspection_model.hdev

优快云博客 1万+

点胶质量检测——halcon代码和图片

热熔胶点胶之后检测垫脚的质量,包括: * 1. 胶水的长度 * 2. 胶水的宽度 * 3. 胶水两端到电池上下边缘的距离 * 4. 胶水到电池左右边缘的距离 * 5. 胶水是否断开 博客:https://liuhui.blog.youkuaiyun.com/article/details/122637756

点胶检查_点胶_点胶检测_点胶检查_halcon_

点胶检查*对点胶检查进行检测并对NG种类进行分类:*1.缺少粘合胶的部分(断胶)*2.粘合剂过多或过少的部分(溢胶、缺胶)*3.粘合胶离其预定位置太远(点胶偏移)

Halcon 3D应用 - 胶路提取

本文基于某手环(拆机打磨处理)做的验证性工作,为了项目保密性,只截取部分数据进行测试。这里使用的是海康3D线激光轮廓相机+直线电机的方式进行的高度数据采集,我们拿到的是数据。提取手环上的胶路信息,检测胶路的胶宽、胶高、断胶等信息。

hao1183716597的专栏 2612

博途的HMI(触摸屏)的应用

触摸屏(HMI):用于控制PLC,可认为是小型上位机(用于控制PLC的都可认为是上位机)上位机(PC Station):将触摸屏升级为电脑----工控机(工业控制的机器)用博途编写西门子的触摸屏和上位机。

王阿妹小天才的博客 2674

Halcon点胶曲线胶路宽度检测

http://www.ihalcon.com/read-14380.html Halcon官方示例教程:apply_bead_inspection_model.hdev

$firecat利白的代码足迹$ 4688

安装esxi7.0

保存重启后就能安装。vCenter Server是VMware vSphere虚拟化架构中的核心管理工具,充当ESXi主机及虚拟机中心管理点的服务,利用vCenter Server,可以集中管理多ESXi主机及其虚拟机,安装、配置和管理vCenter Server 不当可能会导致管理效率降低,或者致使EXSi主机和虚拟机停用。提示选择安装VMware ESXi 使用的存储,ESXi支持U盘以及SD卡安装,如系统中存在多块存储设备,选择需要安装系统的磁盘【注意磁盘142G,ESXI会将120G做VMFSL】

u011220233的博客 1万+

如何下载era5数据?(两种方式)

供水利大数据云计算课程同学参考使用#

Camiel_sweet的博客 1万+

HALCON可变形模板匹配实战:原理、参数调优与工业视觉跟踪应用

在机器视觉领域,模板匹配是实现目标定位与跟踪的基础技术。其核心原理是通过在图像中搜索与预先定义的模板最相似的区域,从而确定目标的位置和姿态。传统的刚性匹配技术假设目标为刚体,仅允许平移、旋转和缩放变换,但在实际工业场景中,目标常因受力、视角或材质原因发生非刚性形变,导致匹配失败。可变形模板匹配技术应运而生,它通过建立特征点间的弹性约束模型,允许模板在匹配过程中发生局部形变,从而显著提升了在复杂条件下的鲁棒性和准确性。这项技术的核心价值在于解决了产线上零件因运动、遮挡或自身形变导致的定位难题,广泛应用于发动机

weixin_34032792的博客 371

加密算法:深度解析Ed25519原理

在 Solana 开发过程中,我一直对 Ed25519 加密算法 如何生成公钥、签名以及验证签名的机制感到困惑。为了弄清这一点,我查阅了大量相关资料,终于对其流程有了更清晰的理解。在此记录实现过程,方便日后查阅。

盹猫的博客 1万+

塑料瓶口螺纹完整性检测:保障密封性能的 5 个实用方案,附 OpenCV+Halcon 实战代码!

塑料瓶口螺纹完整性检测:保障密封性能的 5 个实用方案,附 OpenCV+Halcon 实战代码!

xianzuzhicai的博客 1234

【YOLO系列】YOLOv8详解:模型结构、损失函数、训练方法及代码实现

YOLOv8是Ultralytics团队2023年推出的高效目标检测框架,在速度与精度平衡、多任务支持和易用性方面实现突破。模型采用改进的CSPDarknet主干网络、C2f模块和SPPF加速结构,结合PAN-FPN特征融合和解耦检测头设计,支持目标检测、实例分割和关键点检测任务。创新性地使用CIoU定位损失、Focal Loss置信度损失和动态样本分配策略,显著提升检测性能。实验表明,YOLOv8较前代模型mAP提升5-10%,在TensorRT加速下可达1000FPS,提供5种尺寸灵活选择,成为实时目标

一碗白开水一 2778

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之Port模块配置详解(MCAL配置)

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之Port模块配置详解(MCAL配置)

weixin_42412049的博客 2275

HALCON Local Deformable Matching原理与工业落地实战

Local Deformable Matching(LDM)是一种面向物理形变建模的局部仿射匹配技术,其核心在于将图像形变视为分块刚体变换与空间连续性约束的耦合过程,而非全局非线性扭曲。它基于可解释的确定性优化机制,规避深度学习对标注数据和GPU算力的依赖,在温漂、材料蠕变、产线震动等真实工业扰动下仍能实现±0.3像素级稳定定位。技术价值体现在工程可控性——参数可调、偏差可溯、模型可验,广泛应用于汽车焊装定位、锂电池极耳纠偏、医用导管缺陷检测等高鲁棒性要求场景。本文深入解析HALCON中LDM的形变建模本质

weixin_28235513的博客 67

PHP实现SM2算法(附完整源码)

PHP实现SM2算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 4021

Halcon角度定位检测实战:从亚像素边缘拟合到精度补偿

机器视觉中,图像分割与边缘提取是几何测量的基石。针对工业场景中目标零件绕中心轴的微小旋转,角度检测需要亚像素级边缘定位能力。本文基于Halcon平台,系统讲解从亚像素边缘提取、直线拟合到模板匹配ROI定位的完整技术链路,剖析精度漂移的根源——透视变形、振动与镜头畸变,并给出等距点标定补偿方案。该方法在手机中框贴合、芯片引脚角度矫正等场景中,可稳定实现0.02度以内的重复测量精度,兼顾速度与鲁棒性,为高精度视觉定位提供工程化参考。

weixin_34364071的博客 302

QT5.12.1报错:1. clang++:error: :fatal error andriod Input/output error

QT5.12.1报错:1. clang++:error: :fatal error andriod Input/output error 解决方式: 1.qt程序不要放在共享目录下编译,直接拷贝到ubuntu系统中编译 2.修改/home/xt/Qt5.12.1/5.12.1/android_armv7/mkspecs/android-clang中 #QMAKE_LINK = QMAKECXXQMAKE_CXX QMAKEC​XXQMAKE_CFLAGS -Wl,–exclude-libs,libgc

xt18971492243的博客 735

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C#与Halcon联合编程:从脚本到产线级视觉定位测量框架

机器视觉项目从原型验证到产线落地,算法脚本与工程框架的脱节常成为瓶颈。C#与Halcon联合编程正是解决这一问题的有效路径,通过将视觉计算封装为独立模块,实现灵活调用与稳定部署。文章从视觉定位与尺寸测量的基础原理切入,解读模板匹配、仿射变换、亚像素边缘拟合等关键技术,并结合实际案例说明如何构建包含采集、算法、界面、通讯的四层视觉框架,涵盖异步处理、内存管理、参数配置等工程实践。面向自动化检测场景,帮助开发者打造可维护、可扩展的机器视觉系统。

weixin_33416697的博客 69

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 三维重建之条纹投影结构光(四)——完结(包含重构)
下一篇: 影消点、影消线与相机内参、平面法向量的推导—单视图重构
beyond951
博客等级 码龄5年 413粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

beyond951

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

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

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

打赏作者

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

抵扣说明:

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

余额充值