(五)Halcon缺陷检测实例

一、所需软件环境

1、资源分享

(1)Halcon软件

  Halcon的安装包可以看百度网盘链接:链接:https://pan.baidu.com/s/1bqi7XebbIB_SeqoyKNXqbA
提取码:3opf
 每个月初都需要更新licence,licence可以参考这位博主的博文【这位博主是位大好人,要向他学习】:

https://blog.csdn.net/qq_18620653/article/details/120033443?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170079289416800192261338%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=170079289416800192261338&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-5-120033443-null-null.142v96pc_search_result_base1&utm_term=halcon%20licence&spm=1018.2226.3001.4187

  这个是安装好之后的效果。
在这里插入图片描述

(2)原图和代码分享

资源链接:https://pan.baidu.com/s/1u63SRK-hQlUWejbgLyvzIw
提取码:403v

                有问题可以随时沟通

二、缺陷细分

1、原图

在这里插入图片描述
  这个就是我们这篇文章中想要处理的图片,我们的目的是取提取中间黑色圆形边缘的缺口和毛刺部分。

2、毛刺

 中间圆形是空的,外围是金属区域,而如下图所示就是突出毛刺的展示图片。
在这里插入图片描述

3、缺口

 毛刺就是凸出来的,那么反之,凹进去的自然就是缺口,如下图所示是缺口的展示图片:
在这里插入图片描述

三、Halcon检测

1、思路引导

 检测的流程其实非常简单,先得到一个阈值分割中心黑色圆的结果,然后拟合一个标准圆。用标准圆与黑色圆作差,就可以得到毛刺或者缺口了。
 逻辑是这样的:
  毛刺=拟合圆-黑色圆
  缺口=黑色圆-拟合圆
  这样的计算结果虽然不算严谨,但作为一个初方案还是可以的。

 理清楚逻辑,我们就要思考,拟合圆该怎么得到了。直接用黑色圆进行gen_circle吗,那如果黑色圆阈值分割不太好呢?那么标准圆就变得不太标准了。
 所以我采用精定位的方法,精定位一般用在尺寸测量上,需要建立模板,再添加模板。
 当然在编写算法之前,要先理清楚顺序。
(1)添加参数
(2)阈值分割,得到黑色圆 
(2)根据黑色圆的边缘,建立精定位模板,调节参数,得到标准圆,
(4)根据两个圆和输入图片,得到毛刺
(5)同理得到缺口
(6)根据所需的筛选条件,对毛刺和缺口进行筛选。
(7)输出缺陷,

2 、第一步:导入参数

  每个公司应该都会有自己封装好的联系算子和参数,这些算子的作用主要是用来与后续的函数联系。
  这家公司所用到的算子都是自己封装的,全部以fs开头的,有些还是与自己公司所用到的软件进行联系的,我就不多说了。

简单列出我所导入的参数:
在这里插入图片描述
 这里我就简单地说一下就行,因为这些函数都需要导入三级算子,就算给你们也用不了。

3、main函数中的内容

*需要仿真的图片路径
Path:='E:/工作------------------------------------working/11-09日工作内容/注液孔'
Path:='Z:/工作working————————工作/11-12日工作内容/的撒的撒多撒多撒/注液孔'
Path:='Z:/工作working————————工作/11-12日工作内容/的撒的撒多撒多撒/nn'
Path:='Z:/工作working————————工作/注液孔模型全部最新/注液孔缺陷测试1'
* Path:='E:/工作------------------------------------working/11-09日工作内容/demo'
* Path:='C:/Users/haopengli/Desktop/demo'
list_files (Path, ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)

***针对模板图像或者数据的预处理,预处理exec_preprocess在加载模板时执行,得到中间变量可以传递到exec_inspect检测函数中执行
*Halcon与FSWing进行对接的标准函数,每个算法都需要提供这样定义的函数,FSWing自动构建该函数的调用
*preProcessHandleList是Halcon自有句柄的集合,用于在exec_inspect中使用,不允许删除
preProcessHandleList:=[]
CDataHandle:=[]
*预处理函数接口
exec_preprocess (CDataHandle, FSDataHandle, preProcessHandleList)
fs_datahandle_setsimulatestatus (FSDataHandle, 1)

gen_empty_obj (DefectRegions)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (SrcImage, ImageFiles[Index])
    
    * 缺陷图显示设置
    dev_close_window ()
    get_image_size (SrcImage, WidthI, HeightI)
    Width:=500
    Height:=Width*HeightI/WidthI
    dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
    dev_set_draw ('margin')
    dev_display (SrcImage)
    **************

    ***针对每一张图像的检测
    *Halcon与FSWing进行对接的标准函数,
    *每个手机算法都需要提供这样定义的函数,
    *FSWing自动构建该函数的调用
    exec_inspect (SrcImage, DefectRegions, CDataHandle, FSDataHandle)
    
    
    *********************************************
    * 以下函数可能有问题,可以自行删除
    * *********************************************
     dev_display (DefectRegions)
     disp_message (WindowHandle, ImageFiles[Index], 'window', 12, 12, 'black', 'true')
     count_obj (DefectRegions, Number)
     if(Number > 0)
         area_center(DefectRegions, Area, Row, Column)
         dev_display (DefectRegions)
         for Index1 := 1 to Number by 1
             gen_circle(Circle, Row[Index1-1], Column[Index1-1]
  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Halcon是一种常用的图像处理软件,可以用于各种缺陷检测任务。在Halcon中,可以使用不同的算法和技术来进行缺陷检测。根据引用\[1\]中提供的实例Halcon可以用于背景网格产品刮伤缺陷检测、不均匀表面刮伤检测、产品表面三角缺陷检测、产品毛刺检测、产品上凹坑检测、产品周围缺口检测、电路板短路、断路检测、找出所有网格顶点的位置、化妆品标签褶皱检测、皮革纹理表面缺陷检测、手机摄像头图像表面的轻微缺陷检测、网状产品表面破损检测、铣刀刀口破损缺陷检测和检测印刷数字是否完整等任务。 根据引用\[2\]中的描述,缺陷检测是一项具有挑战性的任务,需要保证稳定性和精度。传统的算法检测缺陷通常需要进行复杂的调试和参数调整,而且容易出现检测不稳定和误测的情况。机器学习和深度学习成为缺陷检测领域的重要技术难点。机器学习方法通常使用类似MLP的神经网络对缺陷特征进行训练和分类。深度学习方法则需要大量的缺陷样本进行训练,并且需要手动标注缺陷位置,训练周期较长。迁移学习法是一种新兴的方法,可以利用已经训练好的网络模型进行缺陷检测。 在日常工程应用中,Halcon通常使用形状匹配进行定位,但当待匹配物体有较大变形时,形状匹配的结果可能不准确,特别是在塑料产品成形时变形或纺织产品因褶皱而变形的情况下。这时需要采用其他方法来获得精确的定位结果。 综上所述,Halcon可以应用于各种缺陷检测任务,并且可以根据具体情况选择合适的算法和技术来实现精确的检测结果。 #### 引用[.reference_title] - *1* [【愚公系列】2023年04月 Halcon机器视觉-15种常用缺陷检测实例](https://blog.csdn.net/aa2528877987/article/details/129943049)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [基于halcon缺陷检测常用方法与示例总结](https://blog.csdn.net/weixin_50016546/article/details/124981131)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风栖柳白杨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值