| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 32348 人关注过本帖, 17 人收藏
标题:图片验证码识别教程----醉若星(原创,1~3章加源程完整版)
只看楼主 加入收藏
冷星
Rank: 1
等 级:新手上路
帖 子:67
专家分:9
注 册:2007-12-13
收藏
得分:0 
比例缩放和背景杂色还好解决,还有一些验证图片里的文字是旋转了一定角度的,那种才是大麻烦。
2008-02-12 21:31
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
关于旋转的话只能先找出旋转的规律,通常来说不太可能360度随意旋转的。就算是360度那也就是每个字多增加360次的判断罢了。将这些特征码都扔到数据库里也不是很麻烦。其实这样算下来的话这个库应该也不会上百万。在处理大型的数据库的时候上千万和上亿的数据也是正常。就算做个MSN机器人的话数据库都不见得比这个小。不要被各类特征吓坏了……其实最终的,最笨的方法还是就是直接收集特征码,不然我也不会说剩下的都是体力活,而不是脑力活了。

当看到一个验证码的时候就是先找出规律,而不是头大。就我现在感觉的话QQ的中文验证这块还算是可以处理的,必竟这个字体还处于可识别的,像现在我在弄QQ华夏的验证码,那个真叫变态。两个数字重叠,我现在做的话只能达到80%的识别,而无法达到100%的识别。因为太变态了,数据旋转无规律,无规律就算了,两个数字经常重叠在一起。而且重叠的时候根本就无法分,现在单找这个规律就浪费了我N多的时间。郁闷……

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-02-13 02:13
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
得分:0 
技术都是相对的.永远没有揭解不开的迷.没有思想做不到的

才看到.泡菜写的不错

有实力才会有魅力 实力来自坚持不懈的努力
2008-02-13 10:42
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
同意师师的看法,技术都是相对应的,只要算法和思想正确基本上就可以实现。其实在写程序我们都是在找寻一个能让计算机处理的一个方法和途径。

PS:师师都好久没来了 ……现在都在那个论坛里学习呢?说一下……我立马飞过去。

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-02-13 17:31
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
今天刚找到的关于汉字识别的资料,可以做为参考,至少是一个算法的方向。

印刷汉字识别方法综述

刘长松 郭繁夏 丁晓青 郭宏

  一、文字识别概述

  汉字是历史悠久的中华民族文化的重要结晶,闪烁着中国人民智慧的光芒。汉字数量众多,仅清朝编纂的《康熙字典》就包含了49,000多个汉字,其数量之大,构思之精,为世界文明史所仅有。由于汉字为非字母化、非拼音化的文字,所以在信息技术及计算机技术日益普及的今天,如何将汉字方便、快速地输入到计算机中已成为关系到计算机技术能否在我国真正普及的关键问题。前文图1所示将汉字输入到计算机里一般有两种方法:人工键入和自动输入。其中人工键入速度慢而且劳动强度大,一般的使用者每分钟只能输入40~50个汉字。这种方法不适用于需要处理大量文字资料的办公自动化、文档管理、图书情报管理等场合。而且随着劳动力价格的升高,利用人工方法进行汉字输入也将面临经济效益的挑战。自动输入又分为汉字识别输入及语音识别输入。

  由于汉字数量众多,汉字识别问题属于超多类模式集合的分类问题。汉字识别技术可以分为印刷体识别及手写体识别技术。而手写体识别又可以分为联机(on-line)与脱机(off-line)两种。这种划分方法可以用图1来表示。

  从识别技术的难度来说,手写体识别的难度高于印刷体识别,而在手写体识别中,脱机手写体的难度又远远超过了联机手写体识别。

  到目前为止,除了脱机手写体数字的识别已有实际应用外,汉字等文字的脱机手写体识别还处在实验室阶段。

  联机手写体的输入,是依靠电磁式或压电式等手写输入板来完成的。在书写时,笔在板上的运动轨迹(在板上的坐标)被转化为一系列的电信号,电信号可以串行地进入到计算机中。从这些电信号我们可以比较容易地抽取笔划和笔顺的信息。从90年代以来,联机手写体的识别正逐步走向实用,方兴未艾。中国大陆及台湾地区的科研工作者推出了多个联机手写体汉字识别系统,国外的一些大公司也开始进入这一市场。这一技术也迎合了pda(personaldigitalassistant)的发展潮流。

  与脱机手写体和联机手写体识别相比,印刷体汉字识别已经实用化,而且在向更高的性能、更完善的用户界面的方向发展。因为它有着广泛的应用前景。目前,办公自动化已成为信息社会不可避免的发展趋势。虽然在计算机网络飞速发展的今天,许多信息已经电子化,世界各地出现了许多“电子版”的报纸、杂志等出版物。但是我们可以看到印刷材料的数量也大大地增加了,一些专业单位如新闻社、图书馆、古籍出版社、档案馆等所接触的印刷材料更是浩如烟海,毕竟阅读印刷材料更为符合人的自然阅读习惯;同时,网络信息资源的爆炸性增长以及网络传输容量的限制,都是方便、快速地获取这些信息的约束因素。电子化的与印刷文本材料如同一枚硬币的两面,互相补充、互相促进,在未来的十几年或更长的时间内将不会出现一者被另一者取代的情况。



  二、印刷体文字识别流程简介

  印刷体文字识别的过程如前文图2所示。原始图象是通过光电扫描仪,ccd器件或电子传真机等获得的二维图象信号,可以是灰度(grayscale)或二值(binary)图象。为简单计,在本文以后的论述中,除非特别提及,图象输入的方式均指由扫描仪输入。前文图2印刷体文字识别的简单流程图所示预处理包括对原始图象的去噪、倾斜校正或各种滤波处理。版面分析完成对于文本图象的总体分析,区分出文本段落及排版顺序,图象、表格的区域;对于文本区域将进行识别处理,对于表格区域进行专用的表格分析及识别处理,对于图象区域进行压缩或简单存储。行字切分是将大幅的图象先切割为行,再从图象行中分离出单个字符的过程。特征提取是整个环节中最重要的一环,它是从单个字符图象上提取统计特征或结构特征的过程,包括为此而做的细化(thinning)、归一化(normalization)等步骤。提取的特征的稳定性及有效性,直接决定了识别的性能。文字识别即从学习得到的特征库中找到与待识字符相似度最高的字符类的过程。后处理则是利用词义、词频、语法规则或语料库等语言先验知识对识别结果进行校正的过程。

  由此可见,印刷汉字识别技术主要包括:

  (1)扫描输入文本图象。

  (2)图象的预处理,包括倾斜校正和滤除干扰噪声等。

  (3)图象版面的分析和理解。

  (4)图象的行切分和字切分。

  (5)基于单字图象的特征选择和提取。

  (6)基于单字图象特征的模式分类。

  (7)将被分类的模式赋予识别结果。

  (8)识别结果的编辑修改后处理。

  其中(4)、(5)和(6),也就是图2中的阴影部分,是印刷汉字识别中最为核心的技术。近几年来,印刷汉字识别系统的单字识别正确率已经超过95%,为了进一步提高系统的总体识别率,扫描图象、图象的预处理以及识别后处理等方面的技术,也都得到了深入的研究,并取得了长足的进展,有效地提高了印刷汉字识别系统的总体性能。



  三、印刷体文字识别的研究历程

  印刷体文字的识别可以说很早就成为人们的梦想,早在1929年,taushek就在德国获得了一项有关ocr的专利。欧美国家为了将浩如烟海、与日俱增的大量报刊杂志、文件资料和单据报表等文字材料输入计算机进行信息处理,从50年代就开始了西文ocr(opticalcharacterrecognition,光学字符识别)技术的研究,以便代替人工键盘输入。

  印刷体汉字的识别最早可以追溯到60年代。1966年,ibm公司的casey和nagy发表了第一篇关于印刷体汉字识别的论文,在这篇论文中他们利用简单的模板匹配法识别了1,000个印刷体汉字。70年代以来,日本学者做了许多工作,其中有代表性的系统有1977年东芝综合研究所研制的可以识别2000汉字的单体印刷汉字识别系统;80年代初期,日本武藏野电气研究所研制的可以识别2300个多体汉字的印刷体汉字识别系统,代表了当时汉字识别的最高水平。此外,日本的三洋、松下、理光和富士等公司也有其研制的印刷汉字识别系统。这些系统在方法上,大都采用基于k-l数字变换的匹配方案,使用了大量专用硬件,其设备有的相当于小型机甚至大型机,价格极其昂贵,没有得到广泛应用。

  我国对印刷汉字识别的研究始于70年代末、80年代初,大致可以分为三大阶段:

  (1)第一阶段从70年代末期到80年代末期,主要是算法和方案探索。

  (2)第二阶段是90年代初期,中文ocr由实验室走向市场,初步实用。

  (3)第三阶段也就是目前,主要是印刷汉字识别技术和系统性能的提高,包括汉英双语混排识别率的提高和稳健性的增强。

  同国外相比,我国的印刷体汉字识别研究起步较晚。但由于我国政府对汉字自动识别输入的研究从80年代开始给予了充分的重视和支持,经过科研人员十多年的辛勤努力,印刷体汉字识别技术的发展和应用,有了长足进步:从简单的单体识别发展到多种字体混排的多体识别,从中文印刷材料的识别发展到中英混排印刷材料的双语识别。各个系统可以支持简、繁体汉字的识别,解决了多体多字号混排文本的识别问题,对于简单的版面可以进行有效的定量分析,同时汉字识别率已达到了98%以上。

  清华大学电子工程系、中国科学院计算所智能中心、北京信息工程学院、沈阳自动化研究所等单位分别研制开发出实用化的印刷体汉字识别系统。尤其是由清华大学电子工程系研制的清华th-ocr产品,始终处于技术与产品发展的最前沿,并占据着最大的市场份额,代表着中文ocr技术发展的潮流。

  这一成就,是对中华文化宝贵遗产的继承和发扬,在世界电脑发展史上,必将留下光辉的一页,同时,这也是造福子孙千秋万代的大事。国家高技术研究发展"863"计划、国家重点科技攻关计划、国家自然科学基金和军事基础研究基金都对这一研究课题予以极大的重视和大力的支持。



  四、印刷体文字识别研究方法简介

  识别方法是整个系统的核心。用于汉字识别的模式识别方法可以大致分为结构模式识别、统计模式识别及两者的结合。下面分别进行介绍。

  1、结构模式识别

  汉字是一种特殊的模式,其结构虽然比较复杂,但具有相当严格的规律性。换言之,汉字图形含有丰富的结构信息,可以设法提取含有这种信息的结构特征及其组字规律,作为识别汉字的依据,这就是结构模式识别。

  结构模式识别是早期汉字识别研究的主要方法。其主要出发点是汉字的组成结构。从汉字的构成上讲,汉字是由笔划(点横竖撇捺等)、偏旁部首构成的;还可以认为汉字是由更小的结构基元构成的。由这些结构基元及其相互关系完全可以精确地对汉字加以描述,就像一篇文章由单字、词、短语和句子按语法规律所组成一样。所以这种方法也叫句法模式识别。识别时,利用上述结构信息及句法分析的方法进行识别,类似一个逻辑推理器。

  用这种方法来描述汉字字形结构在理论上是比较恰当的,其主要优点在于对字体变化的适应性强,区分相似字能力强;但是,在实际应用中,面临的主要问题是抗干扰能力差,因为在实际得到的文本图象中存在着各种干扰,如倾斜,扭曲,断裂,粘连,纸张上的污点,对比度差等等。这些因素直接影响到结构基元的提取,假如结构基元不能准确地得到,后面的推理过程就成了无源之水。此外结构模式识别的描述比较复杂,匹配过程的复杂度因而也较高。所以在印刷体汉字识别领域中,纯结构模式识别方法已经逐渐衰落,句法识别的方法正日益受到挑战。

  2、统计模式识别

  统计决策论发展较早,理论也较成熟。其要点是提取待识别模式的的一组统计特征,然后按照一定准则所确定的决策



  (2)利用变换特征的方法。对字符图象进行二进制变换(如walsh,hardama变换)或更复杂的变换(如karhunen-loeve,fourier,cosine,slant变换等),变换后的特征的维数大大降低。但是这些变换不是旋转不变的,因此对于倾斜变形的字符的识别会有较大的偏差。二进制变换的计算虽然简单,但变换后的特征没有明显的物理意义。k-l变换虽然从最小均方误差角度来说是最佳的,但是运算量太大,难以实用。总之,变换特征的运算复杂度较高。

  (3)投影直方图法。利用字符图象在水平及垂直方向的投影作为特征。该方法对倾斜旋转非常敏感,细分能力差。

  (4)几何矩(geometricmoment)特征。m.k.hu提出利用矩不变量作为特征的想法,引起了研究矩的热潮。研究人员又确定了数十个移不变、比例不变的矩。我们都希望找到稳定可靠的、对各种干扰适应能力很强的特征,在几何矩方面的研究正反映了这一愿望。以上所涉及到的几何矩均在线性变换下保持不变。但在实际环境中,很难保证线性变换这一前提条件。

  (5)spline曲线近似与傅立叶描绘子(fourierdescrip?tor)。两种方法都是针对字符图象轮廓的。spline曲线近似是在轮廓上找到曲率大的折点,利用spline曲线来近似相邻折点之间的轮廓线。而傅立叶描绘子则是利用傅立叶函数模拟封闭的轮廓线,将傅立叶函数的各个系数作为特征的。前者对于旋转很敏感。后者对于轮廓线不封闭的字符图象不适用,因此很难用于笔划断裂的字符的识别。

  (6)笔划密度特征。笔划密度的描述有许多种,这里采用如下定义:字符图象某一特定范围的笔划密度是在该范围内,以固定扫描次数沿水平、垂直或对角线方向扫描时的穿透次数。这种特征描述了汉字的各部分笔划的疏密程度,提供了比较完整的信息。在图象质量可以保证的情况下,这种特征相当稳定。在脱机手写体的识别中也经常用到这种特征。但是在字符内部笔划粘连时误差较大。

  (7)外围特征。汉字的轮廓包含了丰富的特征,即使在字符内部笔划粘连的情况下,轮廓部分的信息也还是比较完整的。这种特征非常适合于作为粗分类的特征。

  (8)基于微结构特征的方法。这种方法的出发点在于,汉字是由笔划组成的,而笔划是由一定方向,一定位置关系与长宽比的矩形段组成的。这些矩形段则称为微结构。利用微结构及微结构之间的关系组成的特征对汉字进行识别,尤其是对于多体汉字的识别,获得了良好的效果。其不足之处是,在内部笔划粘连时,微结构的提取会遇到困难。

  (9)特征点特征。早在1957年,solatronelectronicsgroup公司发布了第一个利用窥视孔(peephole)方法的ocr系统。其主要思想是利用字符点阵中一些有代表性的黑点(笔划),白点(背景)作为特征来区分不同的字符。后有人又将这种方法运用到汉字识别中,对其中的黑点又增加了属性的描述,如端点、折点、交叉点等。也获得了比较好的效果。其特点是对于内部笔划粘连的字符的识别的适应性较强,直观性好,但是不易表示为矢量形式,不适合作为粗分类的特征,匹配难度大。

  当然还有许多种不同的统计特征,诸如图描述法、包含配选法、脱壳透视法、差笔划法等,这里就不一一介绍了。

  3、统计识别与结构识别的结合

  结构模式识别与统计模式识别各有优缺点,随着我们对于两种方法认识的深入,这两种方法正在逐渐融合。网格化特征就是这种结合的产物。字符图象被均匀地或非均匀地划分为若干区域,称之为“网格”。在每一个网格内寻找各种特征,如笔划点与背景点的比例,交叉点、笔划端点的个数,细化后的笔划的长度、网格部分的笔划密度等等。特征的统计以网格为单位,即使个别点的统计有误差也不会造成大的影响,增强了特征的抗干扰性。这种方法正得到日益广泛的应用。

  4、人工神经网络

  人工神经网络(artificialneuralnetwork,以下称ann)是一种模拟人脑神经元细胞的网络结构,它是由大量简单的基本元件-神经元相互连接成的自适应非线性动态系统。虽然目前对于人脑神经元的研究还很不完善,我们无法确定ann的工作方式是否与人脑神经元的运作方式相同,但是ann正在吸引着越来越多的注意力。

  ann中的各个神经元的结构与功能较为简单,但大量的简单神经元的组合却可以非常复杂,我们从而可以通过调整神经元间的连接系数完成分类、识别等复杂的功能。ann还具有一定的自适应的学习与组织能力,组成网络的各个“细胞”可以并行工作,并可以通过调整“细胞”间的连接系数完成分类、识别等复杂的功能。这是冯·诺依曼的计算机无法做到的。

  ann可以作为单纯的分类器(不包含特征提取,选择),也可以用作功能完善的分类器。在英文字母与数字的识别等类别数目较少的分类问题中,常常将字符的图象点阵直接作为神经网络的输入。不同于传统的模式识别方法,在这种情况下,神经网络所“提取”的特征并无明显的物理含义,而是储存在神经物理中各个神经元的连接之中,省去了由人来决定特征提取的方法与实现过程。从这个意义上来说,ann提供了一种“字符自动识别”的可能性。此外,ann分类器是一种非线性的分类器,它可以提供我们很难想象到的复杂的类间分界面,这也为复杂分类问题的解决提供了一种可能的解决方式。

  目前,在对于象汉字识别这样超多类的分类问题,ann的规模会很大,结构也很复杂,现在还远未达到实用的程度。其中的原因很多,主要的原因还在于我们对人脑的工作方式以及ann本身的许多问题还没有找到完美的答案。



  五、汉字识别技术的最新进展

  汉字识别最为重要的指标是识别正确率,最新技术包括两个方面:一是使用组合优化特征的综合识别方法,提高正确率,增加适应性;二是英文与数字的比例超过1/3时的汉英双语混排识别。

  1、组合优化特征的综合识别方法

  抽取单一种类的特征进行汉字识别,误识率较难降低,且抗干扰性不易提高。因为这样所利用的汉字信息量有限,不能全面反映汉字的特点,对任何一种特征来说,必然存在其识别的“死角”,即利用该特征很难区分的汉字。从模式识别的角度来看,若将汉字的全部矢量化特征所组成的空间称作空间(iΚ1,2,……),那么利用整个空间Ω的信息进行汉字识别,由于提供的汉字信息很充分,抗干扰性会大大增强。

  但是,在实际应用中,必须考虑到识别正确率与识别速度(运算量)及系统资源三者的折衷。所以任何一个实用的ocr系统只利用其中部分子空间的信息。由于信息的缺陷,便不可避免地遇到识别“死角”的问题。

  “组合优化特征法”识别汉字的基本思想是:首先,在长期汉字识别研究的基础上,选择结构元等多种基于汉字笔划结构的统计特征,这些特征具有良好的类内聚合和类间发散的分类能力;其次,有机地多种汉字特征互为补充,相得益彰,使汉字识别的“死角”大幅减小,从而提高识别率。

  “组合优化特征”的综合识别方式,是建立在对各种方法充分了解的基础之上,基于知识的识别方式,因为这样既富有针对性,充分发挥了各个方案的长处,取得了高的识别率,又提高了系统的运行效率。

  2、汉英双语混排识别

  随着信息产业的开放与发展,越来越多的英文词语出现在我国的印刷文本材料中。尤其在科技文献刊物中,更是屡见不鲜,英文、数字的比例常常超过1/3。英文字母出现在文本行中,其大小、高度与汉字中的偏旁部首很类似,难以区分是汉字偏旁部首,还是英文字母;英文单词中字母之间的距离不等,粘连也相当普遍;汉字是以横竖等笔划为基本结构的,而英文则是以曲线为主。因此,汉英双语混排识别的关键在于汉字和英文字母的正确分辨和切分。切分的传统方法是利用“高度-宽度-位置”信息,但是由于汉字中可左右分离的字很多,其各部分无论高度和宽度,均与英文字母很接近,如“即”、“旧”等;而且,英文字母的粘连现象也无法解决;此外,许多英文的双字母组合,三字母组合,是用一个字模来印刷的,如“fi”等。因此,在“高度-宽度-位置”准则基础上,根据“tet(try-error-try)准则”,加入了“切分-预识别-二次切分”的手段。即对于各种可能出现的切分情况,进行预识别,从中选出误差最小,最合乎语言逻辑习惯的组合。

  对于粘连的英文字母,由于连续粘连在一起的字母可能有多个,组合的情况较多,且粘连的种类亦有较大区别。进行“穷举式”试切分,所花费的时间代价太大。因此采用“化整为零”的方法,根据最佳邻域搜索原则以及字母串在水平和垂直方向上的投影信息,将字母串从最可靠的地方一分为二,分为两个子串;然后在这两个子串内再重复上述步骤,直到子串的长度大约为三个英文字母的平均宽度;最后进行“穷举式”试切分,从而大大缩短了切分所用的时间。从而有效地解决了汉英双语混排文本的识别。

  3、高性能实用汉字识别系统的其它关键技术

  实用汉字识别系统的其它关键技术主要包括:

  (1)扫描仪自动亮度调节(abj-automaticbrightnessa?justment)技术。

  (2)印刷表格的自动输入的邻域分析技术。

  (3)版面的自动分析(ala-automaticlayoutanalysis)技术。

  综上所述,最新的印刷汉字识别技术流程。

[[it] 本帖最后由 pacocai 于 2008-2-14 07:13 编辑 [/it]]

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-02-13 19:34
joypc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-1-30
收藏
得分:0 
哇,太好了。。
2008-02-14 04:16
liuqinglq
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-2-14
收藏
得分:0 
GOOGLE到这里来了...

LZ写的很好啊...

我刚学验证码识别,现在卡在取图片的有效区和分块这里了...

我要识别的验证码,只有数字,但是每个数字的位置不固定(无重叠),有时甚至数字的一部分超过了图象边界,不知道怎么样才能正确取得每个数字的图块?
2008-02-14 17:07
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
取图的话使用web的数据流。

下面给你个取图的一段代码,你自己研究下吧。
    public partial class Form1 : Form
    {
        HttpWebRequest RQ;
        HttpWebResponse RP;
        FileWebRequest FQ;
        FileWebResponse FP;
        private static Bitmap bmp;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Stream etimage=new
            //获取网络图片
            RQ = (HttpWebRequest)HttpWebRequest.Create("http://chd.);
            RQ.CookieContainer = new CookieContainer();
            RP = (HttpWebResponse)RQ.GetResponse();
            etimage = RP.GetResponseStream();
            //bmp = new Bitmap(RP.GetResponseStream());
            bmp = new Bitmap(etimage);
            //lblresult.Text = " ";
            //etImage(txtUrl.Text.Trim().ToString());
            pictureBox1.Image = bmp;
            label1.Text = RP.GetResponseStream();
            //pbimage.Image = bmp;
        }
    }

我临时写的,没写太多的注释,不过代码也不多,你自己试一下。
你说的超过图象边界?这是指数字有的时候会不完整对吗?还是指…………?
关于位置不固定:如果说是位置不固定的话我们的解决方案是先对图象进行扫描,然后记录出现不同色块(数字与背景色是不同的)然后记录这个最高点。然后一直扫描到底部,记录数字的最低点。这样就知道这个数字的高度和宽度了。再对这个数字进行截取。这样就可以完整的把数字截下来了。然后对数字进行扫描,最后再核对特征库,这样就能得到正确的数字了。

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-02-14 17:35
cobby
Rank: 1
等 级:新手上路
威 望:1
帖 子:565
专家分:0
注 册:2007-7-11
收藏
得分:0 
顶起楼主的原创作品,在这俺也说上几句。

楼主的方法是用特征库的方法实现识别,基本上分为两步走:一是提取特征并入数据库;二是根据样本特征与库中样本比对给出结果。此方法基本上和统计学习有点靠边。
方法的优点是实现简单,对于同一个样本来源,识别准确率较高。
缺点是对于不同来源的样本(可能意味着字体上的差异较大),识别率基本无法保障。
目前对于文本识别的方法主流上有两种,一是基于统计学习的方法,方法简单,但准确率难以保证;二是基于智能优化算法,识别率较高,但算法实现复杂。
现在比较流行的技术要主有人工神经网络、支持向量机等。

努力成为菜鸟!
2008-02-15 11:15
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
向意楼上的,要说准确率真来说的话我更偏向于使用神经网络来实现,只不过实现起来太复杂了。那个算法我现在还没完全弄明白。就是这段时间超级郁闷,早知道以前大学的时候线性和离散能学得认真点就没现在这么吃力了。

基于上神经网络的资料不多,当然如果有兴趣的朋友也可以去了解一下,在这方面因为学识有限就不做讨论了。

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-02-15 13:04
快速回复:图片验证码识别教程----醉若星(原创,1~3章加源程完整版)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027444 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved