数字图像处理(七)形态学处理之击中击不中变换、骨架提取

一. 击中击不中变换

击中击不中变换是形状检测的一个基本工具,先看定义


一般来说,设给定原图像X中包含A在内的多个不同物体,假设定位目标A,为此设置一个形状模板A,此时取一个比A稍大的B,且A不与B的边缘相交,令B1=A,B2=B-A;如下图所示:


算法步骤

一、开三个内存缓冲区,用来保存原图像数据,结构元素H对原图像的腐蚀结果,结构元素M对原图像补集的腐蚀结果

二、保存原图像数据,用结构元素H对原图像腐蚀,并保存腐蚀后的结果

三、恢复原图像,并对其求补

四、用结构元素M对原图像的补进行腐蚀操作,并保存腐蚀后的结果

五、求两个腐蚀结果的交集,即击中与击不中的结果

二. 骨架提取

骨架提取可以通过选定合适的结构元素B,对X进行连续腐蚀和开运算来求得。


算法步骤:

一、获得原图像的首地址及图像的宽和高,并设置循环标志1

二、用结构元素腐蚀原图像,并保存腐蚀结果

三、设置循环标志为0,如果腐蚀结果中有一个点为255,即原图像尚未被完全腐蚀成空集,则将循环标志设为1.

四、用结构元素对腐蚀后的图像进行开运算(消除小的白色区域),并求取腐蚀运算与开运算的差(得到消除的白色区域)

五、用【四】中求得的结果与之前求得的骨架进行并集运算,以获得本次循环求得的骨架

六、把本次循环中保存的腐蚀结果赋值给原图像

七、重复步骤【2】-【6】,直到将原图像腐蚀成空集为止。

最终求得的骨架就是结果。

这两部分的代码都没有调通,就不上代码了,欢迎指正。

猜你喜欢

转载自blog.csdn.net/hjxu2016/article/details/80737696
今日推荐