膨胀 DILATE
内核B覆盖区域的最大像素值代替中心点的像素
1 2 3 X X X
5 6 9 -> X 9 X
8 5 0 X X X
用途:孔洞填充 桥接裂缝
腐蚀 ERODE
用内核B覆盖区的最小像素值代替中心点的像素
5 6 9 X X X
2 3 1 -> X 0 X
0 8 1 X X X
用途:去除毛刺 粘连
开运算 OPEN
先腐蚀后膨胀
用途:平滑轮廓,断开较窄的狭颈并消除细的突细物
闭运算 CLOSE
先膨胀后腐蚀
用途:平滑轮廓,弥合较窄的间断和细长的沟壑,消除小的孔洞,填补轮廓线中的断裂
顶帽 TOPHAT
原图与开运算的差
用途:均匀光照,增强对比度
底帽 BOTHAT
闭运算与原图的差
用途均匀光照,增强对比度
消除 CLEAN
去除孤立的亮点
0 0 0 0 0 0
0 1 0 -> 0 0 0
0 0 0 0 0 0
填充 FILL
填充孤立的黑点
X 1 X X 1 X
1 0 1 -> 1 1 1
X 1 X X 1 X
断开H形连接 HBREAK
断开图像中的H型连接
1 1 1 1 1 1
X 1 X -> X 0 X
1 1 1 1 1 1
桥接 BRIDGE
连接像素
1 0 0 1 1 0
1 0 1 -> 1 1 1
0 0 1 0 1 1
对角线填充 DIAG
采用对角线填充,消除背景的八连通性
0 1 0 0 1 0
1 0 0 -> 1 1 0
0 0 0 0 0 0
用途:增强连通性,如区域填充
大多数 MAJORITY
如果一个像素的8领域中有等于或超过5个像素点的像素值为1,则将该点像素值置 1
用途:去除孤点,填充孔洞
移除 REMOVE
删除内部像素,提取边界像素
X 1 X X 1 X
1 1 1 -> 1 0 1
X 1 X X 1 X
击中击不中
X X X X X X X X X X X X
X X 1 1 X X 0 0 0 X X X 1 X X
X 1 1 1 1 X 1 1 0 X X 1 1 1 X
X 1 1 1 1 X -> 0 1 0 -> X X 1 1 X X
X X 1 1 X X X X X X X X
X X X X X X X X X X X X
1 1 1 1 1 1 X X X X X X
1 1 X X 1 1 0 1 1 1 X X 1 1 X
1 X X X X 1 0 0 1 X X X X 1 X
1 X X X X 1 -> 0 0 0 -> X X X X X X
1 1 X X 1 1 X X X X X X
1 1 1 1 1 1 1 X X X 1 X
细化 THIN
减少图像周围像素,使没有孔的对象收缩到最小连接的描边,使有孔的对象缩小到孔和外部边界的连接环
X X X X X X 1 X X 1 1 X 1 1 1 X 1 1 X X 1 X X X
X 1 X 1 1 X 1 1 X 1 1 X X 1 X X 1 1 X 1 1 X 1 1
1 1 1 1 1 X 1 X X X X X X X X X X X X X 1 X 1 1
B1 B2 B3 B4 B5 B6 B7 B8
粗化 THICKEN
与细化相反,通过向对象外部添加像素来使对象变粗,这样做会导致以前未连接的对象被8连接
1.识别是否存在孤立像素
2.若有孤立像素,将像素膨胀,并取原图角点轮廓和膨胀后的交集,防止膨胀过后的点与原图元素边缘发生粘连
3.对图像增加2px的边界
4.对图像补集进行细化、对角线填充,去除粘连,再求补集
消除毛刺 SPUR
消除毛刺:消除小的分支(毛刺)
原理:找到图像中小的分支(如下图八种结构)将其去除。为了防止消除与边界相邻的点,我们对其补集进行操作。
1 1 1 1 1 X X 0 X X 1 1
1 0 1 1 0 0 1 0 1 0 0 1
X 0 X 1 1 X 1 1 1 X 1 1
0 1 1 1 1 0 1 1 1 1 1 1
1 0 1 1 0 1 1 0 1 1 0 1
1 1 1 1 1 1 0 1 1 1 1 0
中心点由0变为1
分支点(BRANCHPOINTS)
找到骨架的分支点
0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
1 1 1 1 1 0 0 1 0 0
0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
应用:统计米粒个数,对米粒进行处理后细化,再找到其分支点以统计粘连米粒
要查找图像结束点必须先对图像进行骨架化操作
结束点 ENDPOINTS
找到骨架中的结束点
1 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 1 0
0 0 0 0 0 0 0 0
原理:对图像取反之后计算四连通区域,若四连通区域只有一个,则赋值为0