腐蚀、膨胀、开运算(先腐蚀后膨胀)、闭运算(先膨胀后腐蚀)

以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形态学运算的更多相关文章

  1. OpenCV2.x自学笔记——形态学运算

    名称 标识符 作用 原理 腐蚀 MORPH_ERODE 膨胀 MORPH_DILATE 开运算 MORPH_OPEN 消除细白点 先腐蚀后膨胀 闭运算 MORPH_CLOSE 消除小黑洞 先膨胀后腐蚀 ...

  2. Halcon一维运算相关算子整理

    Halcon一维离散函数算子 1.      abs_funct_1d  计算一维数组的绝对值 2.      compose_funct_1将两个离散的一维函数合并为一个函数 3.      cre ...

  3. halcon区域运算

    区域运算: Ø 并:union1().union2(): Ø 交:intersection(); Ø 差:difference(); Ø 补:complement():

  4. Region特征算子与形态学运算——第3讲

      问题提出:求下图中楔形缺口到圆心的最短距离. [涉及知识点讲解] 一.Region特征算子 在图形窗口中用鼠标单击选中某个Region,然后点击菜单栏的“打开特征检测”图标,就可以看到当前Regi ...

  5. 学习 opencv---(10)形态学图像处理(2):开运算,闭运算,形态学梯度,顶帽,黒帽合辑

    上篇文章中,我们重点了解了腐蚀和膨胀这两种最基本的形态学操作,而运用这两个基本操作,我们可以实现更高级的形态学变换. 所以,本文的主角是OpenCV中的morphologyEx函数,它利用基本的膨胀和 ...

  6. 【OpenCV新手教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/23184547 作者:毛星云(浅墨) ...

  7. 形态学及其他集合运算(Morphological and Other Set Operations)

    摘    要:本实验主要实现形态学图像处理.主要验证图像集合的交并补运算.膨胀和腐蚀处理并利用图像集合的运算,实现形态学边界抽取算法并进行特征边界抽取.同时将膨胀和腐蚀扩展至灰度图像,编写函数实现灰度 ...

  8. opencv-图像形态学之开运算、闭运算、形态学梯度、顶帽、黑帽合辑

    转自:https://blog.csdn.net/poem_qianmo/article/details/24599073 1.1 开运算(Opening Operation) 开运算(Opening ...

  9. opencv —— morphologyEx 开运算、闭运算、形态学梯度、顶帽、黑帽

    开运算:先腐蚀后膨胀. 能够排除小亮点. 闭运算:先膨胀后腐蚀. 能够排除小黑点. 形态学梯度:膨胀图 — 腐蚀图. 对二值图像进行这一操作,可将图块的边缘突出出来,故可用来保留物体边缘轮廓. 顶帽: ...

随机推荐

  1. Learning to Rank(转)

    https://blog.csdn.net/kunlong0909/article/details/16805889 Table of Contents 1 前言 2 LTR流程 3 训练数据的获取4 ...

  2. Maven最佳实战

    Maven中内置的隐藏变量: http://www.cnblogs.com/quanyongan/category/471332.html Maven提供了三个隐式的变量可以用来访问环境变量,POM信 ...

  3. C#/.Net判断是否为周末/节假日

    判断节假日请求的Api:http://tool.bitefu.net/jiari/ /// <summary> /// 判断是不是周末/节假日 /// </summary> / ...

  4. How to convert mkv to mp4 lossless

    ffmpeg -i example.mkv -vcodec copy -acodec copy example.mp4

  5. 洛谷 P1102 A−B数对

    题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的 A+BA+BA+B ProblemProblemProblem ,改用 A−BA-BA−B 了哈哈! 好吧,题目是这 ...

  6. mpvue——Error: EPERM: operation not permitted

    报错 $ npm run build > mpvue@ build D:\wamp\www\webpack\mpvue\my-project > node build/build.js w ...

  7. WePY | 小程序组件化开发框架

    资源连接: WePY | 小程序组件化开发框架 WePYAWESOME 微信小程序wepy开发资源汇总 文档 GITHUB weui WebStorm/PhpStorm 配置识别 *.wpy 文件代码 ...

  8. DP及其优化

    常见DP模型及其构造 序列DP ARC074 RGB Sequence 题意 给你一个长度为 \(n\) 的序列和 \(m\) 组约束条件,每组条件形如 \(l_i,r_i,x_i\),表示序列上的 ...

  9. CISCO运维记录之3650堆叠设备升级IOS(Version 16.3.6版本存在bug)

    CISCO运维记录之3650堆叠设备升级IOS(Version 16.3.6版本存在bug) 思科3000系列交换机使用cat3k_caa-universalk9.16.3.6版本存在bug,设备运行 ...

  10. [luogu5253]丢番图【数学】

    传送门 [传送门] 题目大意 求\(\frac{1}{x}+\frac{1}{y}=\frac{1}{n}\)有多少组不同的解. 分析 将式子转化成\((n-x)(n-y)=n^2\)的形式. 那么很 ...