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

   guideline principle依据字符与三格线的关系来进行分割。根据26个字母的大小写在四线三格中的分布状况来看,正常状况下,除了j与f的小写外,其他字符均只占两格,而所有数字应该均在baseline以上区域。

   因此,粘连区域与guideline和baseline的左右侧交点只要不位于边界即可作为分割点。guideline principle根据粘连区域与四线三格的关系分为两大类:占据三格,占据baseline以上两格,占据meanline以下两格。


   1.当前区域占据三格

   1.1 若meanline左侧第一交点不位于边界,则以该点为分割点。考虑到7/Z等字符,此分割点不能同时向上和向下滴落,只能采取从分割点向下滴落,而分割点以上区域则以折线方式。另外如果是字符7/Z且位于粘连区域的第一个字符,则有可能得到的路径左侧无有效字符像素,因此分割完成后需要判断新路径与其左侧边界线之间的有效字符像素数是否合理。
   若合理,则记录新路径,重新统计区块信息。
   若meanline的左侧第一个交点位于边界,或者新路径无效,则进入第二步。
   1.2 若baseline左侧第一个交点不位于边界,则以该点为分割点,同时执行向上滴落和向下滴落。得到新路径之后,根据新路径与左侧边界之间区域的有效像素的数量来判断新路径是否合理。
    若合理,则记录新路径,重新统计区块信息;
    若不合理,或者baseline左侧第一个交点位于边界,则进入第三步。
   1.3 若meanline右侧第一个交点不位于边界,则以该点为分割点,同时执行向上滴落和向下滴落,得到新路径后,根据新路径与右侧路径的有效像素数量来判断新路径是否合理。
    若合理,则记录新路径,重新统计区块信息;
    若未得到合理路径,则进入第四步。
   1.4 若baseline右侧第一个交点不位于边界,则以该点为分割点,同时执行向上滴落和向下滴落,得到新路径后,根据新路径与右侧路径的有效像素数量来判断新路径是否合理。
    若合理,则记录新路径,重新统计区块信息;
    理论上而言,经过上述四步后,应该可以得到一条有效路径,故程序中处理粘连区域占据三格的状况到此为止,后续可以根据实际状况再进行分支添加。

  2.当前区块占据baseline以上两格。

  2.1 若meanline左侧第一交点不位于边界,则以该点为分割点。考虑到7/Z等字符,此分割点不能同时向上和向下滴落,只能采取从分割点向下滴落,而分割点以上区域则以折线方式。另外如果是字符7/Z且位于粘连区域的第一个字符,则有可能得到的路径左侧无有效字符像素。故需要判断新路径与其左侧边界线之间的有效字符像素数是否合理。
    若合理,则记录新路径,重新统计区块信息。
    若meanline的左侧第一个交点位于边界,或者新路径无效,则进入第2步。
  2.2 若meanline右侧第一个交点不位于边界,则以该点为分割点,同时执行向上滴落和向下滴落,得到新路径后,根据新路径与右侧路径的有效像素数量来判断新路径是否合理。
    若合理,则记录新路径,重新统计区块信息;
    若未得到合理路径,则进入第3步。
  2.3 以meanline为参考线获取meanline以上区域的竖直投影M,以baseline为参考线,获取baseline和meanline之间区域的竖直投影BM。
    2.3.1 若M粘连,而BM未粘连,则以BM投影中较接近粘连区域中点的点为分割点进行上下滴落,且默认该路径为有效路径。
    2.3.2 若BM粘连,而M未粘连,则以M投影中较接近粘连区域中点为分割点进行上下滴落,且默认该路径为有效路径。
    2.3.3 若M与BM均粘连,暂未处理,后续可以根据需求添加相应的分支。

    2.3.4 若M与BM均未粘连,也暂未处理,后续可以根据需求添加相应的分支。

   3.当前区域占据meanline以下两格

   3.1 若baseline左侧第一交点不位于边界,则以该点为分割点,同时执行向上滴落和向下滴落,得到新路径后,根据新路径与右侧路径的有效像素数量来判断新路径是否合理。
    若合理,则记录新路径,重新统计区块信息。
    若baseline的左侧第一个交点位于边界,或者新路径无效,则进入第2步。
   3.2 若baseline右侧第一个交点不位于边界,则以该点为分割点,同时执行向上滴落和向下滴落,得到新路径后,根据新路径与右侧路径的有效像素数量来判断新路径是否合理。
    若合理,则记录新路径,重新统计区块信息;
    若未得到合理路径,则进入第3步。
   3.3 以baseline为参考线获取baseline以下区域的竖直投影M,获取baseline和meanline之间区域的竖直投影BM。
    3.3.1 若M粘连,而BM未粘连,则以BM投影中较接近粘连区域中点的点为分割点进行上下滴落,且默认该路径为有效路径。
    3.3.2 若BM粘连,而M未粘连,则以M投影中较接近粘连区域中点为分割点进行上下滴落,且默认该路径为有效路径。
    3.3.3 若M与BM均粘连,暂未处理,后续可以根据需求添加相应的分支。

    3.3.4 若M与BM均未粘连,也暂未处理,后续可以根据需求添加相应的分支。

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

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

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

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

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

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

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

发表评论

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Fork me on GitHub