HALCON-从入门到入门-阈值分割定位算子综合运用

1.废话

之前我的一个师兄告诉我,针对图像上想要定位的内容,机器视觉中定位的方式有很多种,但是如果用阈值分割定位可以做的,就不要用模板匹配了。因为基于形状的模板匹配始终会存在匹配不到的风险,那如果打光效果可以,阈值分割定位的效果就会稳定很多。

其实可以分为两种情况:

第一种,使用背光打出来的图像,图像边缘非常锋利,且形状一致性比较强,周围背景色块干扰比较多,这种情况我们考虑形状给模板匹配。

第二种,产品正面打光,边缘存在过渡像素,周围背景色块干扰小,形状差异较大,这种我们考虑阈值分割进行产品定位。

后面慢慢学习过来之后就发现,在实际上很多的项目中,打光出来的成像效果在边缘都不是非常清晰,过渡非常明显的,由于产品一致性的原因,很多时候拍照出来产品的形状也会发生变换,那么我们使用阈值分割会比较稳定一些。

2.实现效果

下面是阈值分割的效果图。

这是一张芯片引脚的图片,案例的目的是将引脚的焊点定位出来。

其中用到的算子就都是二值化,形状选择,形态学操作的组合。

3.代码解析

1.首先第一步读取图片

read_image (Bond, ImageNames[I])

2.获取整个图像上的灰度最大最小值

    min_max_gray (Die, Bond, 0, Min, Max, Range)

3.基于灰度最小值,二值化出黑色部分像素

    threshold (DieGrey, Wires, 0, Min + 30)

4.对得到的区域进行开运算

    opening_circle (WiresFilled, Balls, 9.5)

5.区域的连通域分析

筛选出更类似矩形的区域

    connection (Balls, SingleBalls)select_shape_std (SingleBalls, Rect, 'rectangle1', 90)

6.将类似于矩形的区域排除

    difference (SingleBalls, Rect, IntermediateBalls)

7.根据图像上的像素,对区域进行展开

    gen_empty_region (Forbidden)expand_gray (IntermediateBalls, Bond, Forbidden, RegionExpand, 4, 'image', 6)

8.继续进行开运算

    opening_circle (RegionExpand, RoundBalls, 15.5)

完成目标。

4.文件

* ball_seq.hdev: Inspection of Ball Bonding
* 
dev_update_off ()
ImageNames := 'die/' + ['die_02','die_03','die_04','die_07']
dev_set_colored (12)
read_image (Bond, ImageNames[0])
get_image_size (Bond, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (3)
NumImages := |ImageNames|
for I := 0 to NumImages - 1 by 1read_image (Bond, ImageNames[I])dev_display (Bond)min_max_gray (Bond, Bond, 0, Min, Max, Range)threshold (Bond, Bright, Max - 80, 255)shape_trans (Bright, Die, 'rectangle2')dev_display (Die)reduce_domain (Bond, Die, DieGrey)min_max_gray (Die, Bond, 0, Min, Max, Range)threshold (DieGrey, Wires, 0, Min + 30)fill_up_shape (Wires, WiresFilled, 'area', 1, 100)opening_circle (WiresFilled, Balls, 9.5)connection (Balls, SingleBalls)select_shape_std (SingleBalls, Rect, 'rectangle1', 90)difference (SingleBalls, Rect, IntermediateBalls)gen_empty_region (Forbidden)expand_gray (IntermediateBalls, Bond, Forbidden, RegionExpand, 4, 'image', 6)opening_circle (RegionExpand, RoundBalls, 15.5)sort_region (RoundBalls, FinalBalls, 'first_point', 'true', 'column')smallest_circle (FinalBalls, Row, Column, Radius)NumBalls := |Radius|Diameter := 2 * RadiusmeanDiameter := sum(Diameter) / NumBallsmimDiameter := min(Diameter)dev_display (RoundBalls)if (I != NumImages)disp_continue_message (WindowHandle, 'black', 'true')endifstop ()
endfor

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

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

相关文章

记录清除挖矿病毒 solrd 过程

1、发现solrd病毒 端午节期间,kafka 服务器被黑客攻击了,植入了挖矿病毒 solrd,这个病毒很聪明,内存,CPU并没有异常升高,以致于上班第一天完全没有察觉。 上班第一天 正常登录服务器查看 flink ,消费kafka…

【qt】视口和窗口坐标

视口和窗口坐标 一.视口和窗口坐标的原理二.视口和窗口坐标的好处三.演示好处四.总结 一.视口和窗口坐标的原理 在绘图事件中进行绘图 void Widget::paintEvent(QPaintEvent *event) {QPainter painter(this);QRect rect(200,0,200,200);painter.drawRect(rect);//设置视口的…

HCIA12 NAT网络地址转换实验

NAT(Network Address Translation)是将 IP 报头中的 IP 地址转换为另一个 IP 地址的过程。主要俩好处: • 有效避免来自外网的攻击,可以很大程度上提高网络安全性。 • 控制内网主机访问外网,同时也可以控制外网…

SwanLab系列教程:用swanlab.Text记录文本

SwanLab是一个由国内团队开源的机器学习实验跟踪工具,相比于Tensorboard有更丰富的功能、更友好的UI界面,以及更重要的云端同步、多人协作功能。 安装:pip install swanlab 本教程主要介绍如何用swanlab.Text记录文本,这在做NLP…

描述常见的Java安全漏洞和防范措施

常见的Java安全漏洞及其防范措施可以归纳如下: 一、常见的Java安全漏洞 跨站脚本攻击(XSS) 漏洞描述:攻击者通过在网页中插入恶意脚本来获取用户的敏感信息或执行恶意操作。防范措施: 输入验证和过滤:对用…

Web前端简历筛选:深入剖析筛选要点与技巧

Web前端简历筛选:深入剖析筛选要点与技巧 在人才辈出的互联网时代,Web前端开发者成为众多企业争相争夺的宝贵资源。然而,面对海量的简历,如何筛选出真正符合需求的前端人才,成为HR们的一大挑战。本文将从四个方面、五…

maven在setting.xml配置文件中限制某个包不走某个镜像的配置案例

一、以阿里云镜像为例 1、验证示例&#xff0c;在 ideal 项目的父 pom.xml 文件中&#xff0c;配置了如下指定镜像 <repositories><repository><id>osgeo</id><url>https://repo.osgeo.org/repository/release/</url><snapshots>&l…

Allegro铺铜以及分割操作

Allegro铺铜以及分割操作 一、铺铜全局设置 点击Shape–>Global Dynamic Shape Parameters&#xff0c;在Shape fill中选择Smooth&#xff0c;其他不用管&#xff0c;这个是在铺铜的时候自动避让不同网络&#xff0c;在Void controls中一般填写如下参数&#xff0c;即避让…

数字孪生智慧水利:精准管理与智能决策的新时代

图扑数字孪生技术在智慧水利中的应用&#xff0c;通过虚拟模型与真实水利系统的无缝连接&#xff0c;实现对水资源和水利工程的全面监控和精细管理。实时数据采集与动态模拟提升了水利系统的预测和响应能力&#xff0c;从洪水预警到水质监测&#xff0c;数字孪生助力各项决策更…

python实现无人机航拍图片像素坐标转世界坐标

背景 已知相机参数&#xff08;传感器宽度和高度、图像宽度和高度、焦距、相对航高、像主点坐标 &#xff09;&#xff0c;在给定像素坐标的前提下&#xff0c;求世界坐标&#xff0c;大部分通过AI来实现&#xff0c;不知道哪个步骤有问题&#xff0c;望大家指正 脚本 impor…

日志通关4:logback

插&#xff1a; AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家(前言 – 人工智能教程 ) 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

Nginx学习笔记(十)如何配置HTTPS协议?(公网)

目录 一、简介二、SSL 证书类型介绍三、公网 SSL 证书3.1 证书管理工具3.2 下载安装 acme.sh3.3 申请并下载证书报错1&#xff1a;没有指定账号报错2&#xff1a;DNS无法解析的域名报错3&#xff1a;无效的响应 404 3.4 配置 Nginx3.5 证书过期刷新 四、补充4.1 同一域名的不同…

硬盘危机:磁盘损坏无法打开的应对策略

在数字化时代&#xff0c;磁盘作为数据存储和传输的核心设备&#xff0c;其稳定性和安全性至关重要。然而&#xff0c;在日常使用过程中&#xff0c;我们时常会面临磁盘损坏无法打开的困境。这不仅会影响我们的工作效率&#xff0c;还可能造成重要数据的丢失。本文将深入探讨磁…

2024年,计算机相关专业还值得选择吗?

问&#xff1a;随着2024年高考落幕&#xff0c;数百万高三学生又将面临人生中的重要抉择&#xff1a;选择大学专业。在这个关键节点&#xff0c;计算机相关专业是否仍是“万金油”的选择&#xff1f;在过去很长一段时间里&#xff0c;计算机科学与技术、人工智能、网络安全、软…

抖音 根据sec uid获取个人详细信息(性别、年龄、属地、关注数、粉丝数、简介等)

本文带来用户的secuid获取用户信息以及其他基本信息&#xff1a; 话不多说看效果&#xff1a; 第一步输入用户sec_uid 根据secuid获取到用户基本信息&#xff1a; 可以支持接口批量转换&#xff0c;欢迎咨询

从信息泄露到登录后台

信息收集 上谷歌用谷歌语法&#xff0c;经过漫长的翻找发现一处PDF&#xff1a; 是某大学的某系统帮助文档&#xff0c;其中泄露了人员的工号和sfz 尝试登陆 此时&#xff0c;虽然获取了工号和sfz&#xff0c;众所周知&#xff0c;现在很多统一身份认证都是学号/工号sfz后六位…

玩转ChatGPT:最全学术论文提示词分享【下】

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 本篇文章&#xff0c;是系列文章「最全学术论文提示词」的完结篇。前两篇的内容请到文末链接处跳转&#x1f447;&#x1f3fb; 11.提交和发布 prompt 1&#xff1a;根据[期刊/会议]指…

深入探讨Java压缩利器:net.lingala.zip4j.ZipFile的应用与实践

在现代软件开发中&#xff0c;数据压缩是一个常见且重要的任务。无论是减小文件大小以节省存储空间&#xff0c;还是将多个文件打包在一起以便于传输和分发&#xff0c;压缩技术都是不可或缺的。在Java世界中&#xff0c;net.lingala.zip4j.ZipFile库因其强大的功能和易用性&am…

如何系统学习vue框架

前言 在软件开发的浩渺星海中&#xff0c;编程规范如同航海的罗盘&#xff0c;为我们指引方向&#xff0c;确保我们的代码之旅能够顺利、高效地到达目的地。无论是个人开发者还是大型团队&#xff0c;编程规范都是提升代码质量、保障项目成功不可或缺的一环。 因此&#xff0c…

人工智能模型对有争议的话题持相反的观点

人工智能模型对有争议的话题持相反的观点 并非所有生成式人工智能模型都是平等的&#xff0c;特别是当涉及到它们如何处理两极分化的主题时。 在2024年ACM公平、问责和透明度(FAccT)会议上发表的一项最新研究中&#xff0c;卡内基梅隆大学、阿姆斯特丹大学和人工智能初创公司h…