halcon形态学运算
腐蚀、膨胀、开运算(先腐蚀后膨胀)、闭运算(先膨胀后腐蚀)
以halcon自带案例ball.hdev为例(开运算),注意代码有所缩减。关于sort_region函数,参考http://blog.sina.com.cn/s/blog_13849dbbc0102xhts.html
dev_update_window ('off') //停止更新窗体
dev_close_window () //关闭窗体
dev_open_window (, , , , 'black', WindowID) //创建窗口,并指定句柄
read_image (Bond, 'die/die_03')
dev_display (Bond)
threshold (Bond, Bright, , )//二值化,灰度直方图工具
shape_trans (Bright, Die, 'rectangle2') //形状变换,获得二值图连通域的最小外接矩形
dev_display (Die)
reduce_domain (Bond, Die, DieGrey) //缩减区域,缩放原区域至新的范围,新范围必须是原范围的子域。
threshold (DieGrey, Wires, , )
fill_up_shape (Wires, WiresFilled, 'area', , )//孔洞填充,面积1~100的孔洞
dev_display (WiresFilled)
opening_circle (WiresFilled, Balls, 15.5) //开运算,先腐蚀后膨胀。留下面积较大的区域
dev_display (Balls)
connection (Balls, SingleBalls) //连通域拆分
//拆分后,特征直方图,通过圆度选取目标圆
select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.85, 1.0)
//可以省略排序步骤,除非需要显示部分目标的参数(如只显示第2-3的外接圆直径)
sort_region (IntermediateBalls, FinalBalls, 'first_point', 'true', 'column')//排序区域,按列排序从左边第一个升序
dev_display (FinalBalls)
smallest_circle (FinalBalls, Row, Column, Radius)//获得每个区域最小外接圆参数
NumBalls := |Radius|
Diameter := * Radius
meanDiameter := mean(Diameter) //可省略
minDiameter := min(Diameter) //可省略
dev_display (Bond) //显示原图
disp_circle (WindowID, Row, Column, Radius)
//显示外接圆直径,在圆上方
disp_message (WindowID, 'D: ' + Diameter$'.4', 'image', Row - * Radius, Column, 'white', 'false')
dev_update_window ('on') //更新窗体
若只显示第2-3的外接圆直径,可以更改相应代码
disp_message (WindowID, 'D: ' + Diameter[:]$'.4', 'image', Row[:] - * Radius[:], Column[:], 'white', 'false')


重要步骤图(只截取了右部区域):
原图——二值化——最小外接矩形——缩减区域(获得ROI)




二值化——孔洞填充——开运算——连通域拆分,得到目标圆——显示参数





halcon形态学运算的更多相关文章
- OpenCV2.x自学笔记——形态学运算
名称 标识符 作用 原理 腐蚀 MORPH_ERODE 膨胀 MORPH_DILATE 开运算 MORPH_OPEN 消除细白点 先腐蚀后膨胀 闭运算 MORPH_CLOSE 消除小黑洞 先膨胀后腐蚀 ...
- Halcon一维运算相关算子整理
Halcon一维离散函数算子 1. abs_funct_1d 计算一维数组的绝对值 2. compose_funct_1将两个离散的一维函数合并为一个函数 3. cre ...
- halcon区域运算
区域运算: Ø 并:union1().union2(): Ø 交:intersection(); Ø 差:difference(); Ø 补:complement():
- Region特征算子与形态学运算——第3讲
问题提出:求下图中楔形缺口到圆心的最短距离. [涉及知识点讲解] 一.Region特征算子 在图形窗口中用鼠标单击选中某个Region,然后点击菜单栏的“打开特征检测”图标,就可以看到当前Regi ...
- 学习 opencv---(10)形态学图像处理(2):开运算,闭运算,形态学梯度,顶帽,黒帽合辑
上篇文章中,我们重点了解了腐蚀和膨胀这两种最基本的形态学操作,而运用这两个基本操作,我们可以实现更高级的形态学变换. 所以,本文的主角是OpenCV中的morphologyEx函数,它利用基本的膨胀和 ...
- 【OpenCV新手教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/23184547 作者:毛星云(浅墨) ...
- 形态学及其他集合运算(Morphological and Other Set Operations)
摘 要:本实验主要实现形态学图像处理.主要验证图像集合的交并补运算.膨胀和腐蚀处理并利用图像集合的运算,实现形态学边界抽取算法并进行特征边界抽取.同时将膨胀和腐蚀扩展至灰度图像,编写函数实现灰度 ...
- opencv-图像形态学之开运算、闭运算、形态学梯度、顶帽、黑帽合辑
转自:https://blog.csdn.net/poem_qianmo/article/details/24599073 1.1 开运算(Opening Operation) 开运算(Opening ...
- opencv —— morphologyEx 开运算、闭运算、形态学梯度、顶帽、黑帽
开运算:先腐蚀后膨胀. 能够排除小亮点. 闭运算:先膨胀后腐蚀. 能够排除小黑点. 形态学梯度:膨胀图 — 腐蚀图. 对二值图像进行这一操作,可将图块的边缘突出出来,故可用来保留物体边缘轮廓. 顶帽: ...
随机推荐
- 获取DataSet中某行某列的数据
LabelText = DataSet11.Tables("COMM.USERS").Rows[0]["User_Name"].tostring() Label ...
- vue循環語句
迭代數組: v-for="site in sites”,sites表示源數組名,site表示數組元素: 迭代對象: v-for=“value in Object”, v-for=" ...
- 为什么int型最大的数是2147483647
32位的电脑中,用二进制表示,最大的就是32个1,用十进制表示为2^32-1,大概40多亿(4294967295) 对于有符号的,第一位用作表示正负(0,1),最大的就是31个1,用十进制表示为2^3 ...
- ES 6 系列 - Module 的语法
es 6 大幅度优化了模块化编程的规范. 写在前面:在 es6 之前,说起 js 的模块化,一般都避不开 CommonJs 和 AMD 两种方案.这两种方案,前者应用于服务器,后者应用于浏览器.而 e ...
- How to RAMDISK on macOS
diskutil erasevolume HFS+ 'RAM Disk' `hdiutil attach -nomount ram://8388608`
- NoClassDefFoundError与ClassNotFoundException
原文地址: https://blog.csdn.net/jamesjxin/article/details/46606307 怎么解决NoClassDefFoundError错误 NoClassDef ...
- xshell使用rz/sz完成文件上传下载
yum -y install lrzsz 安装lrzsz 使用rz完成文件上传 使用sz完成文件下载
- 查询SQL执行情况
/* 查询SQL执行情况 包含逻辑读取信息,执行信息等情况*/ SELECT creation_time N'语句编译时间' ,last_execution_time N'上次执行时间' ,total ...
- 实验九 在JSP中使用数据库
实验性质:验证性 实验学时: 1学时 实验地点: 一 .实验目的与要求 1. 掌握在JSP中使用数据库的方法. 2. 掌握JSP对数据库的基本操作:增.删.改.查. 二. 实验内容 1.JSP访问数据 ...
- GCD HDU - 2588
输入 N 和 M (2<=N<=1000000000, 1<=M<=N), 找出所有满足1<=X<=N 且 gcd(X,N)>=M 的 X 的数量. Inpu ...