2. 广东工业大学 艺术设计学院,广东 广州 510090
2. School of Art and Design, Guangdong University of Technology, Guangzhou, 510090, China
提取骨架有3种方法:形态学细化算法、中轴提取算法、形状分解算法[1-2].形态学细化算法[3]是在二值图像边界剥离后能满足保持目标的连通性的前提下,通过设计结构元素,重复地剥离二值图像的边界素,使之最终成为单像素宽的骨架;中轴提取算法是通过寻找目标轮廓的对称轴来获取目标的中轴;形状分解算法是通过将目标分解为简单的部分,然后再对这些简单的部分进行中轴提取,从而形成目标的整个中轴.然而,不管哪种骨架提取方法,都无法避免对边缘敏感的问题[4-5],即毛刺的产生.
毛刺去除的方法有两种:一种是改进骨架提取算法.文献[6]中,通过改进结构元素,使得结构元素能实现对目标的细化并在细化过程中去除毛刺.这种方法对毛刺与目标的区分是基于结构元素,仅能处理较简单的毛刺.另一种是在目标细化之后,对其进行骨架毛刺去除.在文献[7]中,就是先对目标进行细化,再根据毛刺与骨架主干夹角较大,从而通过剔除与主干方向不一致的分支,保留与主干方向一致的分支.该算法实用性不高,特别是对于主干弯曲程度较大的情况.文献[8-9]也是先对目标进行细化,通过距离骨架点最近的最长边缘点之间轮廓线长度度量骨架点的重要性,通过设定阈值,将重要性低于阈值的骨架点判为毛刺去除.该算法实际应用中误差较大,不能保证主体的连通性,该算法具有一定理论意义,但实用性也不高.
毛刺去除的难点在于,要如何区分毛刺与目标.若区分的效果不好,则易将目标当作毛刺去除,那么就破坏了目标的连通性.若将毛刺当作目标,则毛刺去除不彻底.方法一对毛刺与目标的区分是基于结构元素[10],而方法二是基于目标骨架[11],可见,方法二对毛刺与目标的区分应效果更好,误差更小.
在本文中,将根据毛刺的各种特点,通过对毛刺特征提取,从而设定剔除毛刺的条件,结合结构元素细化方法,对毛刺进行剔除.结果表明,该方法能有效解决一般毛刺去除方法中易将骨架主体误判为毛刺去除的问题,解决纤维尾端被误判为毛刺去除的问题,使骨架主体信息尽可能的保留,具有一定的可行性与实用性.
1 骨架分析与毛刺定义理想情况下,细化后的骨架应是单像素宽度的骨架,骨架端点f(xi, yj)的8领域内仅有一个骨架点与其相连,骨架点f(xi’, yj’)的8领域内有且仅有两个骨架点与该骨架点相连接.而骨架节点f(xi’’, yj’’)的8领域内有2个以上的骨架点与f(xi’’, yj’’)相连接.但很多情况下,细化后的骨架可能出现骨架点f(xi’, yj’)的8领域内不仅有两个骨架点与该骨架点f(xi’, yj’)相连接.图 1显示了骨架端点、骨架点与骨架节点的定义.
|
图 1 骨架的分类 Figure 1 The classification of skeleton |
将连接骨架节点f(xi’’, yj’’)与另一骨架节点的骨架段定义为骨架中段,将连接骨架节点f(xi’’, yj’’)与骨架端点f(xi, yj)的骨架段定义为骨架尾段.
2 毛刺去除总体思路对骨架进行毛刺去除,先对物体进行细化,提取骨架.本文采用形态学细化算法对物体进行细化[12].细化后图像为二值图像.记为
| $ f\left( {x, y} \right) = \left\{ \begin{array}{l} 1, \;\;目标, \\ 0, \;\;背景. \end{array} \right. $ |
步骤1:解决骨架端点封闭区域.
在图像细化后经常出现端点形成封闭区域的情况,如图 2(a)所示,该端点仍然为单像素宽骨架端点,但却形成了环形封闭区域.要解决这个问题有两种方法:一种是进行空洞填充后再一次进行骨架提取;一种是对其进行开环处理.要进行开环处理,主要就是确定从哪个地方断开,即确定要删除闭环区域上的哪一个像素点而不影响骨架的连通性.此部分断开的依据是骨架尾段不能分岔.处理的方法是先确定封闭区域上与所在骨架尾段相连的像素点,对于在该像素点的8邻域内的所有像素点,满足点在闭环区域上,则该点为可删点.由于可删点不止一个,则选取其中一个删除.该点的删除不影响骨架的连通性.开环的处理结果如图 2(b)所示.
|
图 2 环形封闭区域处理实例 Figure 2 Examples of closed loop region processing |
步骤2:搜索节点位置.
对图像f(x, y)进行整幅扫描,找出骨架节点的位置,即对每一g(xi, yj), 判断是否值为1,若是,统计8邻域内值为1的个数,若个数等于大于3个,该点为骨架节点.并对骨架节点的坐标做记录,记为node(x, y).
步骤3:节点分离与骨架中段、骨架尾段端点标记.
定义骨架节点内圈、节点外圈如图 3所示,白色区域为节点,黑色区域为节点内圈,灰色区域为节点外圈.
|
图 3 骨架节点内、外圈 Figure 3 The inner and outer rings of the skeleton nodes |
对骨架在节点上进行分离,即将node(x, y)中记录坐标集对应的骨架节点置为背景,即值由1变0.将节点内圈由目标置为背景,即值为1的点置为0,保存节点内圈的点坐标,记为node_inside(x, y).将节点内圈由目标置为背景的作用是将骨架从节点内圈上进行分离,骨架在节点上的分离不一定能完全地分离各骨架段.对分离后的各骨架中段、骨架尾段的端点进行标记.即骨架外圈值为1的点置为2作为标记.
步骤4:毛刺定位与剔除.
对各骨架段计算骨架段节点端点个数,个数为2的为骨架中段,个数为1的为骨架尾段,通过大量实验结果分析,毛刺不会在交叉点出现,毛刺与骨架仅有一次相接,毛刺较一般骨架段较短等特点,给出以下的限定条件对毛刺进行判定:
条件1:交叉点历经纤维段段数必须为奇数.
条件2:长度大于1、小于设定阈值T的骨架段.
条件3:若在交叉点上有两个骨架中段,则将满足以上两条件的骨架段判为毛刺;若在交叉点上仅有一个骨架中段,则在其余骨架段中保留最长骨架段,其余骨架段若满足以上两个条件则判为毛刺[13].
将满足以上条件的骨架段判为毛刺并去除,结果如图 4所示.
|
图 4 毛刺定位与剔除 Figure 4 Positioning and removing burrs |
步骤5:将骨架节点内圈还原为目标.
步骤6:单独去除仅有1个像素长度的毛刺.
通过步骤5,将骨架节点内圈还原为目标,仅有1个像素长度的骨架中段长度变为3,仅有1个像素长度的骨架尾段变为2,以此区分骨架与毛刺,在此基础上将毛刺去除.
步骤7:将被置为背景的骨架节点还原为目标.
步骤8:剔除骨架节点内圈毛刺.
由于骨架点内圈中的目标可为骨架段,也可为毛刺,如图 5所示,步骤7将它们还原为目标,还需要将其中为毛刺的部分剔除.根据形状的相似性、尺寸的覆盖性和不同结构元素的组合性3个原则[14-15],设计部分结构元素如图 6所示,其中灰色区域可为1,也可为0,由这8个结构元素由两个主结构元素在4个方向上衍生出来,而基于x轴的翻转可以得到另外8个结构元素,在此不一一图示.这16个结构元素保证了元素之间不重叠,并涵盖了元素各种组合,尺寸满足内圈毛刺的大小,可以不误删骨架主体并完全将骨架节点内圈中原为单像素毛刺的点去除.
|
图 5 骨架节点内圈毛刺 Figure 5 The burrs in the inner and outer rings |
|
图 6 骨架内圈毛刺结构元素 Figure 6 The structural element for the burrs in the inne rings |
实验中,先对图像进行骨架提取,骨架提取的算法为matlab中集成的形态学细化算法,原始图像如图 7(a)所示,提取结果如图 7(b)所示,从图 7(b)中可见,骨架虽然较好地提取出来,骨架的连通性也保持了下来,但骨架存在很多毛刺,且在“静”字的骨架上有明显较多的端点闭环.采用本文算法对骨架进行毛刺去除的结果如图 7(c)所示,实验结果可见,毛刺基本被去除掉,骨架主体也被较好地保留.证实了算法的有效性与实用性.
|
图 7 骨架提取与毛刺去除 Figure 7 Skeleton extraction and burr removal |
| [1] |
廖志武. 2-D骨架提取算法研究进展[J].
四川师范大学学报, 2009, 32(5): 676-687.
|
| [2] |
何春, 冯桑, 陆晓, 等. 形态学在交通标志边缘检测中的应用研究[J].
广东工业大学学报, 2013, 30(3): 101-104.
He C, Feng S, Lu X, et al. The application of morphology to edge detection of traffic signs[J]. Journal of Guangdong University of Technology, 2013, 30(3): 101-104. |
| [3] |
Carmen E, Antonio G, María A S. Digitally continuous multivalued functions, morphological operations and thinning algorithms[J].
Journal of Mathematical Imaging and Vision, 2012, 42(1): 76-91.
DOI: 10.1007/s10851-011-0277-z. |
| [4] |
杨仕雄, 韩坚华. 一种高效的指纹图像逐层分割算法[J].
广东工业大学学报, 2010, 27(1): 55-60.
Yang S X, Han J H. A high eficiency layer segmentation algorithm for fingerprint images[J]. Journal of Guangdong University of Technology, 2010, 27(1): 55-60. |
| [5] |
Yang X J, Bai X, Yang X W. An efficient quick algorithm for computing stable skeletons[C]//2009 Congress on Image and Signal Processing, Tianjin, China: CISP, 2009, 1-5.
|
| [6] |
钱超, 王福明. 指纹图像细化算法的研究[J].
电子测试, 2012(10): 30-36.
Qian C, Wang F M. Study on the fingerprint image thinning algorithm[J]. Electronic Test, 2012(10): 30-36. DOI: 10.3969/j.issn.1000-8519.2012.10.007. |
| [7] |
吴庆阳, 苏显渝, 宋芳. 线结构光图像骨架的剪枝算法[J].
四川大学学报:工程技术版, 2006, 38(5): 148-151.
Wu Q Y, Su X Y, Song F. A pruning algorithm for the skeleton of line-structure-light pattern[J]. Journal of Sichuan University :Engineering Science Edition, 2006, 38(5): 148-151. |
| [8] |
王金玲, 段会川, 刘弘. 基于轮廓线度量的形态学骨架剪枝方法[J].
计算机工程与设计, 2009, 30(9): 2283-2285.
Wang J L, Duan H C, Liu H. Skeleton pruning approach for morphological skeletons based on contour metric[J]. Computer Engineering and Design, 2009, 30(9): 2283-2285. |
| [9] |
Duan H C, Wang J L, Liu X Y, et al. A skeleton pruning approach using contour length as the significance measure[C]//Third International Conference on Pervasive Computing and Applications, Alexandria, Egypt: ICPCA, 2008, 360-364.
|
| [10] |
宁亚辉, 雷小奇, 王功孝, 等. 改进的基于模板去除骨架毛刺的方法[J].
计算机应用, 2011, 31: S58-S63.
Ning Y H, Lei X Q, Wang G X, et al. Improved template-based method of burr removal[J]. Journal of Computer Applications, 2011, 31: S58-S63. |
| [11] |
张国栋, 韩佳池. 基于模糊距离变换的骨架剪枝算法[J].
沈阳航空航天大学学报, 2012, 29(1): 64-69.
Zhang G D, Han J C. Skeleton pruning algorithm based on fuzzy distance transform[J]. Journal of Shenyang Aerospace University, 2012, 29(1): 64-69. |
| [12] |
范江涛, 汪仁煌, 周武, 等. 基于数字图像处理技术的针式仪表读数识别[J].
广东工业大学学报, 2007, 24(4): 76-78.
Fan J T, Wang R H, Zhou W. The application of digital image processing in the recognition of Indicator's reading[J]. Journal of Guangdong University of Technology, 2007, 24(4): 76-78. |
| [13] |
秦筱楲, 蔡超, 周成平. 一种有效的骨架毛刺去除算法[J].
华中科技大学学报:自然科学版, 2004, 32(12): 28-31.
Qin X W, Cai C, Zhou C P. An algorithm for removing burr of skeleton[J]. J Huazhong Univ of Sci & Tech: Nature Science Edition, 2004, 32(12): 28-31. |
| [14] |
张黄群, 于盛林, 白银刚. 形态学图像去噪中结构元素选取原则[J].
数据采集与处理, 2008, 23: S81-S83.
Zhang H Q, Yu S L, Bai Y G. Selected principle for structuring element in image denoising based on mathematical morpholog[J]. Journal of Data Acquisition & Processing, 2008, 23: S81-S83. |
| [15] |
唐晓强, 赖惠成. 形态学结构元素选取算法的研究[J].
通信技术, 2010, 43(7): 161-162.
Tang X Q, Lai H C. Study on structure elements based on mathematical morphology[J]. Communications Technology, 2010, 43(7): 161-162. |
2014, Vol. 31