Halcon印字缺陷检测

news2024/11/24 17:33:17

印字缺陷检测

在半导体行业,印字缺陷检测占了很大比例。打印标签上字符的缺失、字符的脏污等印字不良都需要检出。基于匹配和印字区域作差的检测算法思路如下:

读入图像
设置定位区域ROI1
创建模板
设置印字区域ROI2
阈值分割 连通域处理
计算印字外接矩形
截取模板印字区域
读取检测图像 进行匹配
匹配成功 仿射变换图像
根据印字外接矩形 截取模板印字区域
图像中值滤波
阈值分割 连通域处理
区域相减 blob筛选

Halcon示例代码如下

创建形状匹配模板

read_image (Image, IMGPATH)
gen_rectangle1 (ROI_1, 206.45, 433.387, 388.271, 707.601)
area_center (ROI_1, Area2, RowRef, ColumnRef)
reduce_domain (Image, ROI_1, ImageReduced3)
create_shape_model (ImageReduced3, 0, rad(0),  rad(360), 'auto', 'none', 'use_polarity', 'auto', 'auto', ModelID)

提取字符区域

gen_rectangle1 (ROI_0, 402.934, 273.432, 838.452, 911.432)
reduce_domain (Image, ROI_0, ImageReduced)
threshold (ImageReduced, Regions, 60, 255)
erosion_circle (Regions, RegionErosion, 2)
dilation_circle (RegionErosion, RegionDilation, 4)
* reduce_domain (Image, RegionDilation, ImageReduced2)
connection (RegionDilation, ConnectedRegions)
smallest_rectangle1 (ConnectedRegions, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
union1 (Rectangle, RegionUnion)

进行模板匹配 仿射变换图像

read_image (Image2, IMGPATH2)
find_shape_model (Image2, ModelID, rad(-30),  rad(80), 0.5, 1, 0.5, 'interpolation', 0, 0.5, Row4, Column4, Angle, Score1)
if(|Score1|>0)
    gen_cross_contour_xld (Cross, Row4, Column4, 15, rad(45))
    vector_angle_to_rigid (Row4, Column4, Angle,RowRef, ColumnRef, 0, HomMat2D)
    affine_trans_image (Image2, ImageAffineTrans2, HomMat2D, 'constant', 'false')
endif

字符区域提取,区域作差,筛选结果

reduce_domain (Image, RegionUnion, ImageReduced1)
reduce_domain (ImageAffineTrans2, RegionUnion, ImageReduced2)
    
     median_image (ImageReduced1, ImageMedian1, 'circle', 3, 'mirrored')
     median_image (ImageReduced2, ImageMedian2, 'circle', 3, 'mirrored')
    
*     sub_image (ImageMedian2, ImageMedian1, ImageSub, 1, 128)
*     write_image (ImageSub, 'jpeg', 0, 'ImageSub')
    
    dev_set_draw ('fill')
    gray_histo (ImageMedian1, ImageMedian1, AbsoluteHisto, RelativeHisto)
    PeakGray:=sort_index(AbsoluteHisto)[255]
    threshold (ImageMedian1, Region1, PeakGray+25, 255)
  
    gray_histo (ImageMedian2, ImageMedian2, AbsoluteHisto, RelativeHisto)
    PeakGray2:=sort_index(AbsoluteHisto)[255]
    threshold (ImageMedian2, Region2, PeakGray2+25, 255)
    
    difference (Region2, Region1, RegionDifference)
    connection (RegionDifference, ConnectedRegions4)
    select_shape (ConnectedRegions4, SelectedRegions1, 'inner_radius', 'and', 1.8, 10)

检测结果如下图所示:
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文笔记:Traffic Flow Prediction via Spatial Temporal Graph Neural Network

WWW 2020 1 模型 图神经网络图注意力——空间依赖关系 RNNTransformer——短期&长期依赖关系 缺点:运用RNN于较长序列仍然会带来误差积累,并且RNN模型的运算效率并不高 2 实验

IDEA全版本MyBatisCodeHelper Pro免费使用教程(全部版本适用)

版本说明 系统:macOS(Windows同理)IDE:IntelliJ IDEA 2023.1.3 (哪个版本都可以)MyBatisCodeHelper Pro 3.2.1(哪个版本都可以) 环境准备 从插件市场下载MyBatisCodeHelper Pro 领…

FPGA实验四:交通灯控制器设计

目录 一、实验目的 二、设计要求 三、实验代码 1.design source文件代码 2.仿真文件代码 3.代码原理分析 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 3、下载测试结果及分析 五、实验心得 1.解决实验中遇见的问题及解决 2.实验完成的心得 一、实验目的 &a…

如何将TXT转换为PDF格式?两种简便方法分享!

在日常办公和学习中,我们常常遇到需要将文本文件转换为PDF格式的需求。TXT是一种常见的文本文件格式,而PDF则是一种更为通用和便捷的文档格式。本文将为大家介绍两种简单易行的方法,帮助您将TXT文件快速转换为PDF格式。 方法一:记…

无锡阿里云代理商:阿里云将免费提供50款云产品 让更多企业获益

【亿邦原创】在2023年4月11日举办的阿里云峰会上,阿里云智能CTO周靖人介绍,为了让更多中小企业获得云计算红利,阿里云推出新款通用算力型ECS云服务器Universal实例(简称U实例)。 U实例整合了多种云服务器规格&#xff…

Jmeter做单接口测试-超详细步骤讲解

测试项目:本章节将以此测试项目为大家讲解怎么使用jmeter做一个接口测试 CSDN - 专业开发者社区CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区.h…

如何一键将大批量的护照图片转为excle表格?

当我们手头上有很多的护照需要识别成excel怎么办?手工录入效率低,而且容易出错,有没有软件可以帮忙完成这项工作?答案是肯定的,用金鸣表格文字识别大师就能将大批量的护照上的数据合并转到一个excel表上,下…

Python——— 元组

(一)初识元组tuple Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的元素。…

你的隐私被泄漏了吗

近日,某高校毕业生在校期间窃取学校内网数据,收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代,算法分发带来了隐私侵犯,在享受消费生活等便捷权利的同时,似乎又有不…

【Web3】认识元宇宙

元宇宙在Web3中扮演着重要的角色,可以带来许多创新和变革。Web3是下一代互联网的概念,强调去中心化、区块链技术和加密货币的应用。 元宇宙在Web3中的几个作用: 去中心化的虚拟世界:元宇宙通过使用区块链技术和去中心化的网络结构…

基于单片机的智能窗帘智能晾衣架系统的设计与实现

功能介绍 以STM32单片机单片机作为主控系统;OLED液晶显示当前环境温湿度,光照强度,时间,开关状态等信息;雨滴传感器检测当前环境是否下雨,天气下雨检测,天气潮湿时自动收衣服;可以通…

简要介绍 | 大规模三维场景理解:从点云到智能导航

注1:本文系“简要介绍”系列之一,仅从概念上对大规模三维场景理解进行非常简要的介绍,不适合用于深入和详细的了解。 大规模三维场景理解:从点云到智能导航 InteriorNet: Mega-scale Multi-sensor Photo-realistic Indoor Scenes …

【软考程序员学习笔记】——软件工程

目录 🍊一、软件存周期 🍊二、软件生存周期模型 🍊三、软件开发方法 🍊四、需求分析 🍊五、内聚和耦合 🍉模块内的独立性--内聚性 🍉模块间的独立性--耦合性 🍊六、软件测试 …

提交软著的源码格式是怎么样的?软著源码规范器V1.0直接一键生成规范的源码文档

小陶在自己成功申请了软著之后,算是了解一下流程。最主要的就是两个文件,分别是软件说明书和软件源码。软件说明书倒是没啥,可以自己写,跟一个报告差不多吧。软著源码则有很多细节问题。于是我就又写了一个软著源码规范器&#xf…

Windows 11 安装Git

Windows 11 安装Git步骤 前言第一步:从官网下载最新的Git第二步:运行安装程序第三步:选择安装位置第四步:安装配置界面第五步:选择Git默认编辑器窗口第六步:调整新存储库中初始分支的名称第七步&#xff1a…

微信小程序个人中心展示样式(2)

这是之前的详细的看这里 因为这是好多年前写的了,好多人私信我代码有问题。正好今天有时间简单的还原下代码 话不多说先看图(图片样式自己搞奥~~~~我也好久没弄了这就是个参考demo) 以下是一个使用微信小程序开发的个人中心展示详情的示例: 在微信开发…

并发可见性、有序性、原子性与JMM内存模型深入解析

并发三大特性 原子性 一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。在 Java 中,对基本数据类型的变量的读取和赋值操作是原子性操作(64位处理器)。不采取任何的原子性保障措施的自增…

如何制作html文件(合集)

在电脑桌面或者在文件夹中点击:鼠标右键-->新建-->文本文档,一般新建好的文档名字叫“新建文本文档.txt”。 如果您创建的文档没有后缀名“txt”,请不要急,下面的步骤将教您如何显示“txt”后缀名。在文件资源管理器中点击&#xff1a…

0124 计算机网络体系结构

目录 1.计算机网络体系结构 1.1计算机网络概述 计算机网络的组成 计算机网络的功能 计算机网络的分类 计算机网络的性能指标 1.1部分习题 1.2计算机网络体系结构与参考模型 计算机网络分层结构 计算机网络协议、接口与服务 ISO/OSI参考模型和TCP/IP模型 OSI参考模型…

虚拟币与传统金融体系走向健康可持续发展

近年来,虚拟币的崛起引起了全球范围内的广泛关注。作为一种数字资产,虚拟币在不断突破传统金融界限的同时,也面临着许多挑战和争议。然而,随着时间的推移,人们开始看到虚拟币与传统金融体系逐渐融合的趋势,…