C#实现验证码中粘连字符分割(三)

以验证码图片为例,一般情况下我们关注的字符部分可能只占有原始图片的1/2甚至更少。而粘连字符分割算法中,有多个步骤需要遍历字符像素点,因此在开始执行分割算法之前,需要先统计字符部分的范围,后续遍历动作将在此范围内执行。


写文章时贴代码可能有所遗漏,这里提供完整的工程下载链接:链接: http://pan.baidu.com/s/1sjJoWKt 密码: xdeb


如下图所示,我定义了一个名为ImgBoundary的类来记录字符的范围,该类包含字符左上角和右下角的坐标值。


查找字符边界均在二值化图像中执行,方法为:
  (1)外层循环从原点开始沿宽度方向至图像右侧,内层循环从原点开始沿高度方向图像下方遇到的第一个黑色点为左侧极限点
  (2)外层循环从图像右侧沿宽度方向到原点,内层循环从原点开始沿高度方向到图像下方遇到的第一个黑色像素点为右侧极限点
  (3)外层循环从图像下方开始沿高度方向到原点,内层循环从原点开始沿宽度方向至图像右侧,遇到的第一个黑色像素点为下方极限点

(4)外层循环从原点开始沿高度方向至图像下方,内层循环从原点开始沿宽度方向至图像右侧,遇到的第一个黑色像素为上方极限点。

C#实现验证码中粘连字符分割(一)

C#实现验证码中粘连字符分割(二)

C#实现验证码中粘连字符分割(三)

C#实现验证码中粘连字符分割(四)

C#实现验证码中粘连字符分割(五)

C#实现验证码中粘连字符分割(六)

C#实现验证码中粘连字符分割(七)

C#实现验证码中粘连字符分割(八)

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

发表评论

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

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

Fork me on GitHub