halcon瓶身表面缺陷检测-滤波差值法

2024-04-17 12:20

本文主要是介绍halcon瓶身表面缺陷检测-滤波差值法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在瓶子,灌装产业中,通常需要瓶子的瓶身进行检测,防止其出现划痕,破洞等情况。但是通常瓶身出现的缺陷都非常小,往往只是一些细小的划痕,这种情况就非常容易被误判为OK情况。
所以采用滤波差值法,可以有效的对瓶身细小的缺陷进行检测。
其核心在于,通过一个大卷积核的滤波程序将缺陷过滤,然后与低滤波的图像进行相减,得以突出缺陷所在位置。为什么不与原图相减?原因在于,低滤波的作用是在尽可能的保存缺陷所在位置的前提下,减少其他图像噪点的影响。所以使用低卷积核滤波时,可以根据实际情况将低卷积核的滤波调大。

1.halcon程序

read_image (Image, 'D:/2024Work/work/4.13瓶子异物检测/异物/10.bmp')
gen_rectangle1 (ROI_0, 152.494, 150.798, 906.861, 710)
reduce_domain (Image, ROI_0, ImageReduced)binary_threshold (ImageReduced, Region1, 'max_separability', 'dark', UsedThreshold1)
shape_trans (Region1, RegionTrans, 'convex')threshold (ImageReduced, Regions, 0, 243)
reduce_domain (ImageReduced, Regions, ImageReduced2)
smallest_rectangle2 (Regions, Row, Column, Phi, Length1, Length2)
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2-10)
reduce_domain (ImageReduced, Rectangle, ImageReduced1)
*******************************************************************
mean_image (ImageReduced1, ImageMean, 1, 1)
mean_image (ImageReduced1, ImageMean1, 13, 13)
sub_image (ImageMean, ImageMean1, ImageSub, 20, 80)threshold (ImageSub, Regions, 0, 60)
opening_circle (Regions, RegionOpening, 1)
closing_circle (RegionOpening, RegionClosing, 1)
connection (RegionClosing, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 200, 2000)
dev_display (Image)
dev_display (SelectedRegions)

2.halcon程序解析

2.1定位产品位置

首先需要确定瓶子的所在位置。但是滤波差值法受到边缘的影响较大,所以在确定瓶身位置时,需要尽可能的剔除瓶身上的边缘
在这里插入图片描述
在这里插入图片描述

read_image (Image, 'D:/2024Work/work/4.13瓶子异物检测/异物/10.bmp')
gen_rectangle1 (ROI_0, 152.494, 150.798, 906.861, 710)
reduce_domain (Image, ROI_0, ImageReduced)binary_threshold (ImageReduced, Region1, 'max_separability', 'dark', UsedThreshold1)
shape_trans (Region1, RegionTrans, 'convex')threshold (ImageReduced, Regions, 0, 243)
reduce_domain (ImageReduced, Regions, ImageReduced2)
smallest_rectangle2 (Regions, Row, Column, Phi, Length1, Length2)
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2-10)
reduce_domain (ImageReduced, Rectangle, ImageReduced1)

2.2滤波求差值

通常情况下滤波求差值可以使用均值,中值,高斯滤波都可以达到类似的效果,但是根据不同产品的不同,实际的差异可能比较大,通常在表面噪点少的情况,可以使用均值滤波
在这里插入图片描述

mean_image (ImageReduced1, ImageMean, 1, 1)
mean_image (ImageReduced1, ImageMean1, 13, 13)
sub_image (ImageMean, ImageMean1, ImageSub, 20, 80)

2.3形态学后处理

在这里插入图片描述

threshold (ImageSub, Regions, 0, 60)
opening_circle (Regions, RegionOpening, 1)
closing_circle (RegionOpening, RegionClosing, 1)
connection (RegionClosing, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 200, 2000)
dev_display (Image)
dev_display (SelectedRegions)

总结

滤波差值法的核心在于如何对滤波器的选择和测试参数。其中,在有大量噪点的缺陷检测项目和有大量边缘的项目中不适合使用。例如皮质表面脏污检测等。滤波差值法受到边缘和噪点的影响非常大,可以在实际使用中多加尝试即可。

这篇关于halcon瓶身表面缺陷检测-滤波差值法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911786

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

Open3D 基于法线的双边滤波

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 输入参数: 输出参数: 参数影响: 2.2完整代码 三、实现效果 3.1原始点云 3.2滤波后点云 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客 一、概述         基于法线的双边

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

6.4双边滤波

目录 实验原理 示例代码1 运行结果1 实验代码2 运行结果2 实验原理 双边滤波(Bilateral Filtering)是一种非线性滤波技术,用于图像处理中去除噪声,同时保留边缘和细节。这种滤波器结合了空间邻近性和像素值相似性的双重加权,从而能够在去噪(平滑图像)的同时保留图像的边缘细节。双边滤波器能够在的同时,保持边缘清晰,因此非常适合用于去除噪声和保持图像特征。在Op

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

【电子通识】半导体工艺——保护晶圆表面的氧化工艺

在文章【电子通识】半导体工艺——晶圆制造中我们讲到晶圆的一些基础术语和晶圆制造主要步骤:制造锭(Ingot)、锭切割(Wafer Slicing)、晶圆表面抛光(Lapping&Polishing)。         那么其实当晶圆暴露在大气中或化学物质中的氧气时就会形成氧化膜。这与铁(Fe)暴露在大气时会氧化生锈是一样的道理。 氧化膜的作用         在半导体晶圆