击不击中变换
算法步骤:
- 开三个内存缓冲区,用来保存原图像数据,结构元素H对原图像的腐蚀结果,结构元素M对原图像补集的腐蚀结果
- 保存原图像数据,用结构元素H对原图像腐蚀,并保存腐蚀后的结果
- 恢复原图像,并对其求补
- 用结构元素M对原图像的补进行腐蚀操作,并保存腐蚀后的结果
- 求两个腐蚀结果的交集,即击中与击不中的结果
骨架提取
算法步骤:
- 获得原图像的首地址及图像的宽和高,并设置循环标志1
- 用结构元素腐蚀原图像,并保存腐蚀结果
- 设置循环标志为0,如果腐蚀结果中有一个点为255,即原图像尚未被完全腐蚀成空集,则将循环标志设为1.
- 用结构元素对腐蚀后的图像进行开运算(消除小的白色区域),并求取腐蚀运算与开运算的差(得到消除的白色区域)
- 用[4]中求得的结果与之前求得的骨架进行并集运算,以获得本次循环求得的骨架
- 把本次循环中保存的腐蚀结果赋值给原图像
- 重复步骤[2]-[6],直到将原图像腐蚀成空集为止。
最终求得的骨架就是结果。
代码
def skeleton(im