文章目录
形态学基础前提知识
B’为B关于中心对称的集合 (B)z为B在集合Z中移动
腐蚀与膨胀
腐蚀
作为元素集Z中的集合A和B 则B对A的腐蚀定义为:
集合B在Z内移动若移动后B为A的子集则保留当前位置。
公式为:
也可以表示为下式(前提是A集合不等于Z集合,也就是A的补集不能为空):
膨胀
A和B是Z中的集合,则B对A的膨胀定义为:
B关于中心对称与A取交集若不为空,则保留此元素。
公式为:
也可以表示为:
闭运算与开运算
闭运算
先膨胀后腐蚀
可以按照下图来简单理解闭运算 集合B在A外边缘滑动形成的最小外接集合
开运算
先腐蚀后膨胀
可以按照下图来简单理解开运算 集合B在A中滑动形成的最大内接集合
击中与击不中
形态学击中击不中是检测特定形状的工具,
在下图中找到D集合 只需要设定一个比D大一些的W集合 得出W-D集合,再计算出W-D对AC的腐蚀(边缘需要进行拓展,计算结算后恢复),再计算D对A的腐蚀,再将二个集合取交集最终得出来的点便是D的位置中心,匹配成则为击中,反之,击不中。
顶帽与黑帽
顶帽
- 原图像减去开运算结果
- result = src - open
黑帽
- 闭运算结果减去原图像
- result = close - src
一些其他的形态学操作
形态学梯度
形态学梯度 = 膨胀-腐蚀
边界提取
用原集合减去被适当大小集合B腐蚀过后的原集合
孔洞填充
孔洞定义为被前景像素连接包围的背景像素区域,此次介绍的是非自动化的孔洞填充 后续将介绍自动化的孔洞填充
方法:首先选取孔洞中任意元素 定义为X0 之后定义一个3*3的结构元B 用B膨胀X0 得到的结果与A的补集相交得到 X1 重复此步骤知道最终结果不变 最终所得的结果则为孔洞填充结果 XK XK与A并集得出完整孔洞(边界 加 孔洞填充)
此方法从方法步骤中可以看出一些问题 每次填充都需要选定孔洞中一个元素 很不自动 之后介绍的方法会解决这问题。
上公式中膨胀之后的结果与一些限制进行交集 这种膨胀手段常被称为“条件膨胀” 同理 “条件腐蚀”
连通分量的提取
连通分量提取方法与孔洞填充相似 同样是 条件膨胀
首先提取需要提取的连通分量的一个元素(前背景或者后背景元素)定义为X0 之后定义一个3*3的结构元B 用B膨胀X0 得到的结果与此连通分量相交得到 X1 重复此步骤知道最终结果不变 最终所得的结果则为此连通分量。
凸壳
如果一个集合中任两点相连形成的直线段都在此集合中 则此集合为凸性的 。 定义任意集合S的凸壳H是包含S的最小凸集,H-S为凸缺
四个结构元
“x”为不做计算的位置 每个结构元中心都定义为中心位置
选取初始集合作为运算初始项,与结构元B进行击中击不中变换 结果与运算初始项取并集 重复上述步骤知道最终结果不变位置,
上述步骤可得出凸壳一部分(指定方向指定结构元)重复四个结构元将得出的四个结果取并集得出最终凸壳结果。
实验可知得出来的结果并不是最小凸集 边缘有多余元素 可使用凸壳生长算法限制水平竖直方向的增长,效果也不是很好。
细化
定义n个结构元B方向尽量全面 为了得出细化效果更好的集合
细化可以看作是简单的骨架提取 方法为利用原集合减去原集合与结构元B进行击中击不中变换后的结果得出来的结果。
粗化
粗化与细化是相反的操作 细化前背景 也就是粗化后背景
骨架
形态学重建
形态学重建主要是测地膨胀 和 测地腐蚀 两种操作 之前讨论的形态学操作都是一幅图片 一个结构元 而形态学重建需要两幅图片 一个结构元
一幅图片作为标记图片 它包含变换的起点
一幅图片作为模板图片 它包含限制条件
结构元用来定义连接
- 测地膨胀
方法为对标记图片F进行结构元B膨胀 再与模板图片取交集
重复上步直至最终结果不变
过程中因为有模板图片作为限制所以最终的重建图片就是模板图片
- 测地腐蚀
方法为对标记图片F进行结构元B腐蚀 再与模板图片取并集
重复上步直至最终结果不变
过程中因为有模板图片作为限制所以最终的重建图片就是模板图片
代码传送门
https://blog.csdn.net/jiDxiaohuo/article/details/100980256
我飘在南方
我的梦在哪里
我就飘在哪里
如果你也有梦想
放开去追
因为
只有奋斗才能改变命运啊