[转]:手写数字识别系统之细化图像

简介

所谓的细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到图像的骨架。

骨架,可以理解为图象的中轴,例如一个长方形的骨架是它的长方向上的中轴线;正方形的骨架是它的中心点;圆的骨架是它的圆心,直线的骨架是它自身,孤立点的骨架也是自身。

细化删除条件

  1. 内部点不能删除

  2. 孤立点不能删除

  3. 直线端点不能删除

  4. 如果P是边界点,去掉P后,如果连通分量不增加,则P可以删除

细化步骤

通过基于数学形态学的腐蚀细化法,通过刚才的删除条件,进行匹配删除,由于是直接判断,省了模板匹配的这一步。

针对3*3的八邻域,进行操作:

|| p3 || p2 || p9 |||| p4 || p1 || p8 |||| p5 || p6 || p7 ||
其中p1 = 1为黑点,如果以下四个条件同时满足,则删除p1,即令p1 = 0:2 ≤ NZ(p1) ≤ 6    // 用于排除孤立点和内部点NZ(p1) = l // NZ(p1)为p1点分支数,分支数为1说明是边界点,删除后不增加连通分量p2 * p4 * p8 = 0 or NZ(p2) != 1 // 向下删除,避免打断p2 * p4 * p6 = 0 or NZ(p4) != 1 // 向右删除,避免打断p6 * p8 * p2 = 0 or NZ(p8) != 1 // 向左删除,避免打断p6 * p4 * p8 = 0 or NZ(p6) != 1 // 向上删除,避免打断

实验结果

细化前:

细化后:

不足与改进

可以看到,使用这种算法的效果还算不错,但是还是有许多不足的地方,比如说:

  1. 颈部化:线条交叉处会产生变形

  2. 多余分支:由于线条粗细不均会产生多余分支

  3. 头部消减:较粗的线条端点容易在逐层腐蚀中被消减,这对于原本就较短的数字线条尤为严重。

这些问题虽然有一些解决方法,但我目前实现的效果不佳,有待进一步研究

参考文献

如果想要了解更多数字图像处理相关的内容,可以去我的书柜看看,冈萨雷斯写的那本书数字图像处理还是非常经典的。。

TBOOX项目主页
原文出处:http://tboox.org/cn/2016/07/31/hnr-thin/

关键字:图像检索, 图像处理, 图像识别, 图像分割

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部