粘粘字符“花式分割”___fix broken characters

   在我们的研究对象中,有的字符在某些笔画上颜色相对较浅,这样导致二值化的图像会有缺口。这样的缺口最直接的影响就是让某些loop不完整,在后续的算法中不完整的loop会被涂为背景色,于是我们就会失去一个宝贵的loop分割依据,给整个分割大计造成重大损失。因此我们必须想办法将这些缺口修补起来,我将这项工作称为fix broken characters。

   那么现在问题就来了:什么样的缺口该补,什么样的缺口又不该补呢?首先大原则是我们只补那些单像素点的缺口,原因显而易见。即便是单像素,在我们的研究对象中,也有众多嗷嗷待补的缺口。

   以8领域为研究对象,我们可以将待补的缺口分为三类:直线或竖线的中间点;斜线的中间点;两点中间的拐点。


   首先如果我们只补第一类缺口,效果图如下。修补起来的缺口基本都是应该要补的,但有些该补的loop会被遗漏。


   如果这三类都补,那么效果图如下。显然因为过于博爱,经过修补后,多出了很多不该有的loop,于是我们又多了一项工作:真假loop大作战。综合各方面因素考虑,我觉得这样种方案得不偿失,因此不考虑。


   因此最终fix broken characters函数中仅补偿了第一类缺口,本函数的实现原理与《<一种改进的并行细化算法>的CSharp代码详解类似,将每种待修补的笔画组合变换为一个数值,然后将其制表,通过查表法来判断是否需要修补字符,程序中列出了这三类缺口的数值,有兴趣的同学可以随时增减观察补偿效果,有任何疑问,欢迎讨论。

粘粘字符“花式分割”___fix broken characters

粘粘字符“花式分割”___Color Filling

粘粘字符“花式分割”___loop principle

粘粘字符“花式分割”___draw guide lines

粘粘字符“花式分割”___loop and guideline

粘粘字符“花式分割”___guideline principle

验证码粘连字符分割经验谈

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Fork me on GitHub