halcon例程学习——ball.hdev

在这里插入图片描述

dev_update_window ('off')
dev_close_window ()
dev_open_window (0, 0, 728, 512, 'black', WindowID)
read_image (Bond, 'die/die_03')
dev_display (Bond)
set_display_font (WindowID, 14, 'mono', 'true', 'false')
*自带的 提示继续
disp_continue_message (WindowID, 'black', 'true')
stop ()
*阈值分割(输入区域,输出区域,阈值范围)
threshold (Bond, Bright, 100, 255)
*将区域转换成某一形状(输入区域,输出区域,要转换的形状)
shape_trans (Bright, Die, 'rectangle2')
dev_set_color ('green')
dev_set_line_width (3)
dev_set_draw ('margin')
dev_display (Die)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*裁剪区域,相当于拿着die这块板子去bond图像上面拆一块下来,并命名DieGrey(输入区域,要被裁剪的样板,输出区域)
reduce_domain (Bond, Die, DieGrey)
*对裁剪下来的区域进行阈值分割(输入区域,输出区域,阈值范围)
threshold (DieGrey, Wires, 0, 50)
*填充有某些特征的孔(需要填充的区域,输出区域,特征,特征范围)
fill_up_shape (Wires, WiresFilled, 'area', 1, 100)
dev_display (Bond)
dev_set_draw ('fill')
dev_set_color ('red')
dev_display (WiresFilled)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*开运算去掉半径小于15.5的小圆(输入区域,输出区域,圆的半径)
opening_circle (WiresFilled, Balls, 15.5)
dev_set_color ('green')
dev_display (Balls)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*打散,将不同的圆区分开来,此时点击一个圆,是单独的,刚刚开运算之后点击一个圆会选中所有的圆(输入区域,输出区域)
connection (Balls, SingleBalls)
*筛选,可以打开特征检测,看他们值的变化,以此来筛选出不要的(输入,输出,像矩形的程度)
select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.85, 1.0)
*对区域进行排序(其实这个没多大关系)
sort_region (IntermediateBalls, FinalBalls, 'first_point', 'true', 'column')
dev_display (Bond)
dev_set_colored (12)
dev_display (FinalBalls)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*计算一个给定区域的最小外接圆,可以得到中心点坐标以及半径
smallest_circle (FinalBalls, Row, Column, Radius)
NumBalls := |Radius|
Diameter := 2 * Radius
meanDiameter := mean(Diameter)
minDiameter := min(Diameter)
dev_display (Bond)
*在窗口中显示圆
disp_circle (WindowID, Row, Column, Radius)
dev_set_color ('white')
disp_message (WindowID, 'D: ' + Diameter$'.4', 'image', Row - 2 * Radius, Column, 'white', 'false')
dev_update_window ('on')
原图
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0c17ad06010e4ec29d37cd70d93657e8.png)
阈值分割之后
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/63e1957748e54abba3e8c7853781da15.png)
开运算之后
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a165232c57c4435fb5126d3d95f66be2.png)
形状选择之后
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/53fa7b35eec7484487a0e219c41ff7d1.png)

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

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

相关文章

【深耕 Python】Data Science with Python 数据科学(2)jupyter-lab和numpy数组

关于数据科学环境的建立,可以参考我的博客:【深耕 Python】Data Science with Python 数据科学(1)环境搭建 Jupyter代码片段1:简单数组的定义和排序 import numpy as np np.array([1, 2, 3]) a np.array([9, 6, 2, …

剑指Offer题目笔记22(快速排序)

快速排序定义: ​ 快速排序的基本思想是分治法,排序过程如下:在输入数组中随机选取一个元素作为中间值(pivot),然后对数组进行分区(partition),使所有比中间值小的数据移…

elasticsearch 8.12+kibana 8.12

准备工作:1.下载相关的安装包放到/usr/local/ES下面 elasticsearch下载地址:Download Elasticsearch | Elastic elasticsearch-head-master下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip node下载地址:Index of /dist/ kibana地址:Downl…

C++中的STL简介与string类

目录 STL简介 STL的版本 STL的六大组件 string类 标准库中的string类 string类的常用接口 string类对象对容量的操作 size()函数与length()函数 capacity()函数 capacity的扩容方式 reserve()函数 resize()函数 string类对象的操作 push_back()函数 append()函数 operator()函数…

【JavaScript算法】DOM树层级显示

题目描述: 上述表达式的输出结果为 [DIV] [P, SPAN, P, SPAN] [SPAN, SPAN]直接上代码 let tree document.querySelector(".a"); function traverseElRoot(elRoot) {const result [];function traverse(element, level) {if (!result[level]) {resul…

智能未来:一站式AI技术探索平台(一键收藏)

KKAI,(kk.zlrxjh.top) 一个融合了星火大模型和文心大模型技术的先进知识增强型大语言模型,致力于自然语言处理(NLP)技术的深入研究与开发。此模型展现了卓越的语义理解与内容生成技能,轻松应对…

[Python GUI PyQt] PyQt5快速入门

PyQt5快速入门 PyQt5的快速入门0. 写在前面1. 思维导图2. 第一个PyQt5的应用程序3. PyQt5的常用基本控件和布局3.1 PyQt5的常用基本控件3.1.1 按钮控件 QPushButton3.1.2 文本标签控件 QLabel3.1.3 单行输入框控件 QLineEdit3.1.4 A Quick Widgets Demo 3.2 PyQt5的常用基本控件…

静态住宅IP优缺点,究竟要怎么选?

在进行海外 IP 代理时,了解动态住宅 IP 和静态住宅 IP 的区别以及如何选择合适的类型非常重要。本文将介绍精态住宅 IP 特点和,并提供选择建议,帮助您根据需求做出明智的决策。 静态住宅 IP 的特点 静态住宅 IP 是指 IP 地址在一段时间内保…

2024最新嵌入式学习路线,太顶了

2024最新嵌入式学习路线,太顶了!!! 嵌入式系统是一种将软件和硬件紧密结合的技术。在我们投身嵌入式行业时,首先需要认识到,无论我们是专注于软件开发还是硬件开发,最终的目标都是为了更好的工作…

JSON 文档存储详解

JSON(JavaScript Object Notation、JavaScript 对象表示法)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。JSON 易于阅读和编写,同时也方便机器解析和生成,并且能够有效地提升网络传…

关于Oracle VM VirtualBox无法查询IP地址的原因

1.如下,输入ifconfig却没有显示我框住的显示IP。 2.原因有可能: (1)主机没连上网络。 (2)虚拟机网络设置不正确。

跳跃游戏-java

题目描述: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 解题思想: …