基于matlab的数字识别系统设计_第1页
基于matlab的数字识别系统设计_第2页
基于matlab的数字识别系统设计_第3页
基于matlab的数字识别系统设计_第4页
基于matlab的数字识别系统设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数字识别系统1.绪论研究背景1.1.1索书号的简介索书号是图书馆赋予每一种馆藏图书的号码,这种号码具有一定结构并带有特定的意义。在馆藏系中,每种书的索书号是唯一的,可准确地确定馆藏图书在书架上的排列位置,它是读者查找图书必要的代码信息。索书号通常是根据中国图书资料分类法编排的【1】一一简称中图法中图法采拉丁字母和阿拉伯数字相结合的混合标记符号。根据图书的学科主题,以拉丁字母标记并顺序展列出22个基本大类,其中没有L、M和Y开头的一一参考附录1中图法简表。由于“T工业技术”的大类范围广泛、内容繁多,故又在该类基础上采用双位拉丁字母标记出16个二级类目,如TK、TL、TM和TN等。字母之后再用阿

2、拉伯数字对大类进行细分。如B表示哲学、宗教一大类;B020则表示宗教理论。有的图书馆如清华大学还在图书分类号码后添加按照图书作者姓名所编排的著者号码,或者是按照图书进馆时间的先后所取用的顺序号码。不同索书号确定排列先后顺序的步骤是,先比较分类号码:如分类号码相同再比较著者号码或顺序号码。最后按照字母表和数字大小的顺序排列。1.1.2书库中图书查找存在的问题随着电子计算机和网络技术的发展,现代图书馆都已经广泛建立电子数据库图书管理系统,方便用户查找、阅览书籍。读者借图书的流程如图2所示,一般利用书目查询系统,根据图书的书名,出版社,作者以及书的内容等在电子数据库中检索自己需要的图书,记录图书相关

3、信息。最后,根据图书的索书号,快速方便地在书库中找到相应的图书。但是,经常会遇到下列问题:电子数据库系统显示图书状态为“归还”,利用检索到号,却无法在书库找到此书。出现这种情况主要有两个原因:(1)图书错位放置,即图书在书库中摆放的位置与索书号不一致。(2)图书已经丢失,即虽然电子数据库中显示图书状态为“归还”,但实质图书已经丢失,并不在书库中。随着图书馆藏书数目的不断增加,每天借阅的人数增多,而且有的图书馆发展成拥有几个分馆,上述问题越来越严重。这一方面严重降低了图书馆的资源的利用率;另一方面,浪费了读者的时间,造成了很大麻烦。目前,图书馆主要通过定期的人工检查发现书库中错位和丢失的图书。但

4、是,由丁馆藏图书多达上万,甚至几十万,而且每天又都有大量图书的借出和还入,人工检查工作量很大,单调、重复的工作容易使工作员疲劳,检查速度比较慢,无法满足实际的需要。因此,迫切希望开发索书号自动识别系统,实现对书库中图书放置位置的自动检查,并通过索书号识别结果与电子数据库中图书信息的比较,找出已经丢失的图书。确保电子数据库中的图书状态与书库中的一致,以及书库中的图书准确排放,从而有效解决上述“用索书号找不到图书”的问题。1.2索书号自动识别系统近年来,随着电子计算机技术、图像处理技术和摄像技术的迅速发展,图像中的文字信息提取系统已经成功地应用于各个领域。因此,借助其经验,本文研究采用图像处理和识

5、别技术实现索书号的自动识别。1.2.1索书号自动识别系统概述系统的硬件由彩色CCD摄像头,8位图像采集卡和计算机组成,拍摄的图像为8位RGB彩色数字图像。如图1-1所示CCD摄像索书号文字图像分割文字图像二值化单个字符切分索书号识别图书排放位置判断CCD摄像机拍摄排放在书架上的图书图像,图书的图像出索书号外还有其他内容,如出版社的标志,其他文字甚至大块的污渍等,必须从中分割出仅包含索书号的文字图像。灰度的文字图像难以直接用于识别,所以讲灰度的文字图像装换为二值图像。由于噪声和五点的干扰,以及光照不均匀的影响,二值化后的文字会发生粘连,严重改变文字的自营。字符切分成单个字符后才进行文字识别。按照

6、上述流程,具体介绍索书号识别的整个过程。1.2.2索书号识别存在的问题及关键技术索书号识别所涉及的摄像技术,无线通讯技术,电子数据库图书管理技术,AGV自动导引技术和图像处理技术都已经在其他领域有成功应用的实例。图像处理技术是索书号识别的核心技术,而与相类似的应用相比,索书号图像处理与识别又有其自身显著的特点和难点。图书馆收集了近几十年的藏书,不同时代的索书号编写风格大不相同。本论文选取图书馆的主要类别图书一一印刷体索书号,从图书馆的书架上随即抽取样本进行研究。如图7所示,CCD摄像头拍摄的索书号图像,由于光照不均匀、退色、污迹、噪声以及其他非索书号文字的存在,大大增加了索书号识别的困难。为了

7、能够解决上述问题,索书号图像识别主要由以下4个模块组成:索书号定位,索书号提取,索书号字符切分和索书号单字识别。第一阶段:索书号定位是在图像中找到包含索书号的图像区域,要求该区域尽可能包含完整的索书号,同时尽量排除非索书号的图像区域。由于该阶段是解决索书号的区域查找问题,而没有涉及单字切分,因此图像区域的估计允许有一定误差。为了包含完整的索书号以及避免索书号漏检,往往是定位得到的图像区域略大于索书号的真实区域。索书号定位主要存在两个问题:(1)受不均匀光照和褪色的影响,索书号的纹理特征、颜色特征以及形状特征等有较大的变化,可靠性相对较差;(2)有的索书号由1个字符串组成,有的索陆号由2个字符串

8、组成,而在索书号的周围附近还会存在其他文字,如出版社名称和作者姓名。因此,将索书号与其他文字相区别比较困难。第二阶段:索书号提取是在定位得到的索书号区域中,将索书号字符与周围目标和背景相互分离。通过二值化处理,能将字符与背最相互分离。但由于定位得到的图像区域略大于真实索书号区域,二值化后在索书号字符附近可能会存在一些非字符目标,影响后续的单字切分和识别。所以,二值化后采用连通域滤波进一步消除索书号周围的非字符目标。索书号提取主要存在的问题:(1)不均匀光照增大了索书号图像的灰度值变化范围。(2)褪色程度的不同则降低了字符与背景的对比度。(3)污迹的影响。上述因素的存在不仅使得确定二值化过程中合

9、理的阈值非常困难,而且会改变索书号字符的形状特征,最终影响连通域滤波的性能。第三阶段:索书号字符切分是将索书号字符串切分成一个个字符,以提供给识别算法进行识别。单字切分的结果如何将直接影响识别结果,而且切分好坏除字符能否正确识别之外,没有较好的判别依据。因此,单字切分往往与字符识别紧密结合在一起。索书号的单字切分可以分为两种情况:非粘连单字切分和粘连字符的单字切分。非粘连单字切分比价容易解决。但质量较差索书号图像二值化处理后,相邻字符可能会发生粘连。而粘连索书号切分存在的主要问题是(1)粘连字符的切分比较困难:(2)索书号字符发生粘连有一部分是字符的笔画发生变形所致,如笔划宽度变粗等。即使正确

10、的切分也不一定能够完全修正笔画的变形,即无法通过粘连切分恢复字符的原形。第四阶段:索书号单字识别。印刷体单字识别的研究已经相当成熟,只是与其他应用领域的文字识别相比,索书号文字的质量较差,存在字符不均匀褪色,笔划残缺以及大面积污迹等问题,2索书号文字图像分割复杂背景图像中的文字定位和分割是从图像中获取文字信息的关键步骤,直接影响到后续文字识别的准确性,它在机器人视觉.汽车牌照自动识别,计算机文本自动输入,邮件地址自动识别,集装箱编号自动识别以及视频图像内容的检索等系统中都有广泛的应用CCD拍摄的图书索书号图像如图2-1所示图像中除了索书号还包含尤其他文字,红色条形框还包含有其他文字,红色条形框

11、以及装饰景物等,为了能够正确识别该书的索书号,首先必须从图像中正确分割出索书号图像。但是,从图像尤其场景图像中自动定位和分割文字是比一,文字嵌入在图像中,并与其它图形共存,如边框颜色退化,文字颜色不均匀,热切背景颜色有食欲吻脖第四,关照条件无去控制,广州不均匀;第五,索书号本课题利用基于边缘点数量统计的文字图像分号文字图像具有如下特征:第一,索书号文字采用黑色第三,索书号字符水平排列;第四,索书号贴在书脊的验结果证明,该方去具有定位精度高,准确率高,抗噪得理想效果。像有以下几个方面:第等;第二,由于文字,文字尺寸大小变化书号的制定规则,索书字的数量至少为3个;程如图2-2所示,实2-1图书索书

12、号I目难的,其主要,一示,装饰物以及污色差异很小;第*与其他文字。J去。根据图书馆索I;第二,索书号部分。它的算去n强,并在“索书”中取V图2-2索书号图像分割算法流程HSI彩色空间转换摄像头拍摄的彩色图片的像素点通常是采用24位RGB表示。但R,G和B3分量之间有很高的相关性,直接利用这些分量常常不嫩得到所需的分割效果。比较接近人堆颜色视觉感知的是色度,饱和度和亮度空间。其中I表示颜色的敏感程度,H表示不同的颜色,S表示颜色的深浅,I分量与彩色信息无关,H和S与人感受彩色的方式紧密相连。本算法中,只对边缘点进行财社分割,切自用S分量。英雌,问了减少算法的耗时,首先子转换I分量,如图2-3所示

13、,待边缘检测出来后,再堆边缘点进行S分量计算。转换关系如下:I=(R+G+B)/3(2-1)S=1-3/(R+G+B)*min(R,G,B)(2-2)2.2Canny算子检测Canny算子边缘检测先计算X和Y方向的梯度平方和,局部最大的梯度幅值局部变化最大的点的过程叫非极大值抑制。Canny算子边缘检测有如下3个指标:第一,对每个边缘点有唯一的响应,得到的边缘为单像素狂;第二,错误率最低,即要少将真正的边缘点丢失也要少将非边缘点判为边缘点;第三,高位置精度,检测的边缘应在正真的边界上。为此,Canny像影帝定义了3给准函数衣表达上述指标的约束:a,信噪比函数准则;b,定位精度准这函数;c,单边

14、缘响应准这函数。这三个准则相结合可以检测的最佳的边缘。Canny算子中有3个参数,。是高斯函数闻不得参数,他控制平滑程度:高阈值(TG)和低阈值(TL)。实验中。设置为1,TL=0.4*TG。这样在Canny算子中只保留了一个参数高阈值(TG)。实际应用中,TG取值只需要满足两个条件:第一,确保尽可能地检测出索书号文字的边缘点,这粗限定了TG取值的最高上限;第二,确保加边缘尽可能少,这限定了TG取值的下限。由于文字和背景具有较强的对比度,TG取值有一个较大的范围,实验中TG=0.2。如图2-4所示,即实验中的Canny算子边缘检测结果。D图2-3Canny算子检测的边缘2.3索书号边缘点彩色分

15、割文字图像有一些独特的特征,文字图像的解构比较复杂,边缘像素点比较多,切分布比较集中。BW_Word(i,j)二受光照条件和文字颜色退化程度不同的影响,文字部分特征如对比度,亮度等容易搜到干扰,但是文字的边缘分布规律且有较强的干扰性能。Canny算子检测等到的边缘点在HSI彩色空间S分量上精心索书号文字边缘点的分割。由于索书号文字采用黑色应刷,但发生不同程度的退色,继黑岩色的饱和度s有一定的变化,故S1SNy0(non-word)(2-4)式中,Ny0(word)为文职图像区域的行平均边缘点个数,Ny0(non-word)为非文字图像区域的行平均边缘点个数。虽然文字图像区域中也存在者字符见得间

16、隔,必能完全保证每一行的边缘点数量都比非文字区域的行边缘点数量多。但是从概率角度可以认为,文字图像区域的每一行边缘点适量大于政府图像边缘点数量的行平均值,而非文字图像区域者相反,即:Ny(word)Ny0(word)Ny(non-word)(2-5)式中Ny(word)是文字图像区域中某一行的边缘点数量,Ny(non-word)是非文字图像区域中某一行的边缘点数量,Ny0(word)所示是整幅图像边缘点数量的行平均值。边缘点数量统计如图2-6所示。图2-6行方向边缘点数量统计检测出的可能文字图像应先进行合并,形成可能的文字图像区域。受文字图形自身结构繁简程度不同的影响,以及索书号可能有多行字符

17、串组成,而两行字符串之间可能存在间隔,使的图像文字区域中的某些行的边缘点数量低于平均值,设置行方向的间隔阈值Ty=10.即去过两可能文字图像行的间距DyNx0(non-word)(2-6)式中,Nx0(word)为文字图像区域的列平均边缘点个数,Nx0(non-word)为非文字图像区域的列平均边缘点个数。文字图像区域列边缘点数两也有下属关系:Nx(word)Nx0(word)Nx(non-word)(2-7)式中Nx(word)是文字图像区域中某一列的边缘点数量,Nx(non-word)是非文字图像区域中某一列的边缘点数量,Nx0(word)所示是整幅图像边缘点数量的列平均值。边缘点数量统计

18、如图2-7所示。检测出的可能文字图像应先进行合并,形成可能的文字图像区域。受文字图形自身结构繁简程度不同的影响,以及索书号可能有多列字符串组成,而两列字符串之间可能存在间隔,使的图像文字区域中的某些列的边缘点数量低于平均值,设置行方向的间隔阈值Tx=20即去过两可能文字图像行的间距DxTx,这经性合并,否则视为两个独立的文字图像区域。经可能文字图像行合并后,图2-1所示的索书号文字图像区域中存在两个索书号图像区域。现在其中包含可能文字图像行最多的区域为索书号文字图像。边界调整检测出的文字图像中,由于文字大小写,吱声结构等造成字符排列不争气,导致不问字符的笔画会被漏检,如字符P的下半部分。因此,

19、必须调整文字图像的边界。在已经分割出的文字区域赴京,统计行方向的边缘点数量,若边缘点数量大于2,则将列并入文字图像区域。同理在列方向进行边界调整。经过列方向和行方向边界天正,形成完整的文字图像区,并提取出文字图像。如图2-1所示的索书号分割出的索书号图像如图2-8所示。图2-8分割出的索书号图像文字图像二值化3.1二值化的概述多数OCR文字识别系统都是在二值化的文字图像上实现的。因此,灰度文字图像的二值化处理是文字识别系统中的关键步骤,其结果直接影响后续的图像处理,包括字符切分、特征提取和字符识别等。二值化问题描述如:令N为一系列自然数,(x,y)是数字图像的空间坐标,G二0,1,21-1是表

20、示灰度级的正整数,这样图像函数以定义为映射:f:N*NG,坐标为(x,y)的像素点值为f(x,y)o设t为阈值,B=(0,1),是一对二值灰度,其二值化过程为:0f(x,y)=I1f(x,y)0,若k32,iW(j,j+k),TDp(i)=0,则在j,j+k】内必然存在唯一的凹结构,如果BDp(j)0,若k2,i(j,j+k),BDp(i)=0,则在jj+k】内必然存在唯一的凸结构,如图4-1所示为二值化的索书号图像的上轮廓和下轮廓曲线,在凹凸轮廓实际检测时,由于字符图像受噪声影响,字符的部分笔划边缘不光滑,会检测到一些仅有1,2个象素深度或高度的假凹轮廓或假凸轮廓。为了有效抑制笔划边缘不光滑

21、的干扰影响,在检测过程中,增加了一个约束条件,即凹轮廓的深度和凸轮廓的高度必须大于等于3个象素。0102030405060708090100图4-1(a)字符串上轮廓曲线图4-1(b)字符串下轮廓曲线432字符高度和宽度的近似检测根据上轮廓和下轮廓的定义,可以检测到各列字符高度H(i):H(i)=ET(i)-EB(i)(式4-4)取字符串的最大高度为字符的近似高度Hw:Hw=maxH(i)(式4-5)字符串图像的上下轮廓曲线表明:(1)非粘连字符的间隔处存在鲜明的凹凸结构;(2)绝大部分粘连字符在间隔处也会同样存在凹凸结构;(3)绝大部分水平笔划粘连的字符至少也会存在凹结构或凸结构因此,可以采

22、用凹凸结构的间距近似检测单个字符的宽度Gw.由于凹凸结构受字符自身形状和粘连情况的影响,如I,I,1(小写L)和1等字符相对较窄,而M,N,V,W等字符本身包含凹凸结构,从这些字符检测到的问距会偏小,而水平笔划的字符粘连会使检测到的间距偏大,所以取凹结构间距和凸结构间距的中间值作为单个字符的近似宽度设n个凹结构的位置集合为CT(1),CT(2),.CT(n),凸结构位置集合为CB(1),CB,,.CB(m),则凹结构和凸结构的间距分别为:DCT(i)=CT(i)-CT(i-1),i=2,3,n(式4-6)DCB(i)=CB(i)-CB(i-1),i=2,3,m(式4-7)为了将第一个凹结构和凸

23、结构的间距包括在内,定义第一个凹结构和凸结构的间距为:DCT(1)=CT(1)-LcDCB(1)=CB(1)-Lc(式4-8)(式4-9)其中Lc为字符串的起始列。单个字符的宽度估计值为:Gw=medDCT(1),.DCT(1),.DCB(1),.DCB(1)(式4-10)由于受字符形态的影响,即使相同字体的字符,其宽度也有较大的变化,如字符1和字符“M”的宽度,而字符的高度保持基本保持一致。因此,字符高度的检测比宽度检测更加准确,一般来说印刷体的字符高度和宽度之间满足如下关系;Gw=0.7Hw(式4-11)因此,如果当字符因干扰严重而无法准确检测到字符宽度时,根据上述(4-14)式关系,建立

24、字符宽度检测的约束条件:0.5HwGw0.8Hw(式412)即当用凹凸结构轮廓检测的字符宽度不能满足式(4-11)的约束关系时,用式(4-12)估计字符宽度。433粘连索书号的切分索书号字符粘连的类型主要是简单粘连。上下轮廓的凹凸结构位置作为可能的切分列,在如在约束条件的作用下进行切分:同一索书号的字符尺寸大小相同,则每个字符的宽度Lw应该在一定范围内,即:0.6GwLw1.5Gw(式413)在上述约束条件的作用下,切分算法如下所示。切分的步骤如下:第一步:为非粘连字符的切分。检测上轮廓的凹结构,若第i个凹结构的Tp(CT(i)=O,则i凹结构为非粘连字符的间隔,切分后所得的字符区域为Pl,P

25、2.Pn)。第二步:在上述切分的基础进行粘连字符的切分。4.3.4字符笔画变形的修复粘连字符的切分是对字符变形的纠正,但并不是正确的切分就能完全修复字符笔划的变形。如图55所示,正确的切分后,字符“3”的变形。由于索书号字符串的字符笔划宽度接近相等,粘连笔划切分后同样应该满足该条件:Rw=minSL/SR,SR/SL(式414)若Rw=PT,则在k处检测到结构突变(P);若SLLT,SRRT,则检测到结构为竖直(V);若SLLT,SRRT,则检测到结构为右斜(R);若SLLT,SRRT,则检测到结构为圆弧(c)。(2)由于字符轮廓突变处,表示字符轮廓不连续,则突变前后的轮廓特征必须分别检测。即

26、若l处检测到P,则在【1,匕一1】的字符轮廓范围内统计SL,SV和SR独立进行结构基元检测。若在k2处又检测到P,则在【匕+1,也一1】范围内进行基元检测,依此类推。由于字符轮廓基元的形成需要一定数(T)轮廓像素点,即只有当SL+SV+SR=ST时,才能进行基元检测,否则不进行基元检测。例如,当SL+SV+SR=2时,其形成的基元结构是不稳定。一般取ST=4。(4)检测到突变结构P的有效范围在xW【ST,NST+1】,YW【ST,MST+1】。这主要是因为在其他范围内出现的结构P多为干扰所致,结构P截成的轮廓曲线过短,不能判定其结构。左右两侧轮廓上检测到的基元按照从上到下的顺序保存在各自的向量

27、组LS和RS中;项部检测到基元按从左到右的顺序保存在另一个向量组TS中。顶部轮廓上,Ts(i)表示顶部轮廓结构基元的向量组的第i个结构基元,Tn表示顶部轮廓共有的基元数目;左侧轮廓上,LS(i)表示左侧轮廓结构基元的向量组的第i个结构基元,Ln表示左侧轮廓共有的基元数目;右侧轮廓上,RS(i)表示右侧轮廓结构基元的向量组的第i个结构基元,Rn表示右侧轮廓共有的基元数目。轮廓的统计特征采用上述的解构基元还不足以准确识别残缺和完整的数字,引入轮廓的统计特征。水平方向的最大字符宽度Wmax;maxW=maxRP(k)-LP(k)max该特征主要用语识别数字1。当W占/2,即为数字1,H=M。max垂

28、直方向的笔划数该特征主要用于所示别数字0和8。因为0和8的轮廓解构特征及其相似,所以借助与垂直方向的笔画数加以区分。8在垂直方向的最大笔画数也可能位。采用检测到笔画数为2时垂直方向的最小值来代替。假设J列上的像素点P(j,i-1),检测到垂直方向的笔画书为1,在P(j,i-1)检测到了第二个笔画,则S2=i,表示检测到第二个笔画的像素点位置。当S2vM-ST时,检测到的字符为8,否则为0。数字字符的识别算法讲数字字符的顶部,左右两侧的局部轮廓解构特征和轮廓统计特征结合成特征向量,用以描述10个数字。更具特征向量,采用结构识别算法识别地步残缺的和完整的数字字符。由于底部特征丢失,会改变左右两侧的

29、部分结构特征,但不会影响顶部特征,因此特征描述和机构匹配识别都从顶部轮廓特征开始。局部轮廓解构特征和统计特征描述数字:0:TS=C,Size(LS)=Size(RS)=1;S2M-ST.9;TS=C,LS(1)=C,LS(2)=P.实验结果如图5-1所示,它是被切割字符3识别的结果,其中包括该字符的左轮廓图像(a),右轮廓图像(b),上轮廓图像(c),字符宽度图像(d);同样,图5-2是字符7,图5-3字符4的识别的结果图5-1(b)图5-2(b)图5-3(a)图5-3(b)图5-1(c)Digit=3Digit=7图5-2(c)图5-2(d)Digit=4图5-3(c)图5-4(d)由于在该

30、字符识别的过程中并不是采用模版匹配识别或是神经网络识别,故程序的识别结果并不是与图像库中原有的字符相比较,而是通过找出一个待识别的字符的各个轮廓结构,并找出其微分结构,根据句法结构语句的识别的方法,给出Digit的值,其值即是待识别的字符数字,总的来说该算法虽然较繁琐,但从程序结果可以看出其识别能力较好,基本上能正确的将索书号数字识别出来。程序附录附录A索书号文字图像分割代码:%I=imread(24-1.jpg);该图像的试验结果读者自行试验。I=imread(22-2.jpg);ticy,x,z=size(I);myI=double(I);%RGBtoHSI%HS_I=(myI(:,:,1

31、)+myI(:,:,2)+myI(:,:,3)/3;t1=toctic%边缘点数量统计与S分量的纹理分割%S=zeros(y,x);BW=edge(HS_I,canny,0.2);%边缘检测,对边缘像素点作统计分析。t2=tocticES=0;fori=1:xforj=1:yif(BW(j,i)=1)S(j,i)=1-min(myI(j,i,:)/HS_I(j,i);SR=round(S(j,i)*100)/100;ES=ESSR;endendendESx=(0:0.01:1);BW1=zeros(y,x);fori=1:xforj=1:y%根据上述的统计直方图设定S的阈值if(BW(j,i)

32、=1)&(S(j,i)=0.01)BW1(j,i)=1;endendendt3=toctic%边缘像素点数量统计%EdgePointsX=sum(BWl);%X方向AveragePointsX=mean(EdgePointsX);EPx=(1:x);%文字图像区域分割%XDirectionColumnX=zeros(1,x);fori=1:xif(EdgePointsX(i)=AveragePointsX)ColumnX(i)=1;endendNx=sum(ColumnX);Posx=zeros(1,Nx);%挑出边缘点数量大于平均值的位置k=1;fori=1:xif(EdgePointsX(

33、i)=AveragePointsX)Posx(k)=i;k=k+1;endendgapx=12;%间隔小于10列的,区域合并Partx0=zeros(1,Nx);Partx1=zeros(1,Nx);k=1;Partx0(1)=Posx(1);fori=2:Nxd=Posx(i)-Posx(i-1);if(dgapx)Partx1(k)=Posx(i-1);k=k+1;Partx0(k)=Posx(i);endendPartx1(k)=Posx(Nx);%最后一列大于平均值的位置作为,最后一个区域的切分位置Spanx=zeros(1,k);%共有k个区域fori=1:kSpanx(i)=sum

34、(ColumnX(Partx0(i):Partx1(i);endmytempnPartx=max(Spanx);word_Xseg0=Partx0(nPartx);word_Xseg1=Partx1(nPartx);%BWSeg=BWl(:,word_XsegO:word_Xseg1);%Y方向边缘点统计BWT=BWSeg;EdgePointsY=sum(BWT);AveragePointsY=mean(EdgePointsY);EPy=(1:y);RowY=zeros(1,y);fori=1:yif(EdgePointsY(i)=AveragePointsY)RowY(i)=1;endend

35、Ny=sum(RowY);Posy=zeros(1,Ny);%挑出边缘点数量大于平均值的位置k=1;fori=1:yif(EdgePointsY(i)=AveragePointsY)Posy(k)=i;k=k+1;endendgapy=20;%间隔小于30列的,区域合并Party0=zeros(1,Ny);Party1=zeros(1,Ny);k=1;Party0(1)=Posy(1);fori=2:Nyd=Posy(i)-Posy(i-1);if(dgapy)Party1(k)=Posy(i-1);k=k+1;Party0(k)=Posy(i);endendParty1(k)=Posy(Ny

36、);%最后一列大于平均值的位置作为,最后一个区域的切分位置Spany=zeros(1,k);%共有k个区域fori=1:kSpany(i)=sum(RowY(Party0(i):Party1(i);endmytempnParty=max(Spany);word_Yseg0=Party0(nParty);word_Yseg1=Party1(nParty);word=I(word_Yseg0:word_Yseg1,word_Xseg0:word_Xseg1,:);t4=tocHS_I=uint8(HS_I);%Display%imshow(word);附录B图像二值化代码:load(word.ma

37、t);T2=graythresh(word);J=im2bw(word,T2);se=strel(square,2);fo=imopen(J,se);imshow(fo);附录C粘连字符切分代码:I=imread(19-3-02.jpg);%I=imread(49-3-BW01.jpg);I=im2bw(I,0.43);yx=size(I);Top=zeros(1,x);%顶端轮廓检测fori=1:xj=1;while(I(j,i)=1)&(j1)j=j-1;endBottom(i)=y-j;endHeight=Top-Bottom;WordHeight=max(Height);%文字高度%=

38、轮廓线的凹检测=%记录凹轮廓处的位置,%下降值%上升值%凹轮廓的深度阈值1表示默认起始列为TopD=zeros(1,x-1);Concave=1;第一个ConcaveDeep=0;DeepH=0;DeepT=5;Sign=0;fori=1:x-1TopD(i)=Top(i+1)-Top(i);endfori=1:x-2if(TopD(i)0)if(abs(Deep)=DeepT)DeepH=DeepH+TopD(i);if(abs(DeepH)=DeepT)Concave=ConcavetempX;Sign=0;%确认为凹后,复位标志位DeepH=0;endelseSign=0;%确认为凹后,

39、复位标志位Deep=0;endendend%上升值%下降值%凸程度阈值%=轮廓线的凸检测=%BottomD=zeros(1,x-1);Convex=1;Asend=0;Desend=0;ConvexT=3;Sign=0;fori=1:x-1BottomD(i)=Bottom(i+1)-Bottom(i);endfori=1:x-2if(BottomD(i)0)Sign=1;Desend=0;Asend=Asend+BottomD(i);tempX=i+1;%最接近于左端endif(Sign=1)&(BottomD(i)=ConvexT)Desend=Desend+BottomD(i);if(a

40、bs(Desend)=ConvexT)Convex=ConvextempX;Sign=0;%复位Desend=0;end%复位elseSign=0;Asend=0;endendend%=切分=%mytempn=size(Concave);%注意Concave的第一个数值无效StrokeT=5;%笔划宽度阈值GapT=8;W=zeros(1,n);fori=1:n-1W(i)=Concave(i+1)-Concave(i);endW(n)=x-Concave(n);Width=median(W);%近似的字符宽度PXR1=1;%记录第一次切分位置PXR2=1;%记录第二次切分位置Mark=0;%

41、记录黑白转换的次数%CrossSign=0;%交错粘连的标志Black=zeros(1,x);%统计笔划像素点BP=zeros(1,x);SegSoke=zeros(3,x);%切分点处的笔划宽度RH=zeros(1,x);%切分后的高度比RW=zeros(1,x);%切分后的宽度比Score=zeros(1,x);%特征值的总得分XGood=1;%X切分位置SegY=1;%记录第一次切分的Y深度fork=2:nWordH=max(Height(Concave(k-1):Concave(k);WordW=Concave(k)-Concave(k-1);if(WordW=0.5*Width)&(

42、WordW=1.5*Width)%选定切分的区域PX1=Concave(k);PX2=PX1;while(TopD(PX2)=0)&(PX2x)PX2=PX2+1;%凹右边的列位置endi=fix(PX1+PX2)/2);if(Top(i)=1)%无粘连PXR1=PXR1i;PXR2=PXR2i;elsej=y+1-Top(i);%PY为实际的y坐标值,此处已为黑色像素点八、Mark=0;while(jy)&(Mark1)&(I(j,Si)=0)%左笔划宽度Si=Si-1;SegSoke(1,i)=SegSoke(1,i)+1;endSi=i;while(Si1)&(I(j-1,SLi)=1)

43、SLi=SLi-1;endSRi=i;while(SRi1.5*Width)PX=fix(Concave(k)+Concave(k-1)/2);%避免水平“横”的粘连k=k-1;end%如果宽度过小,则不切分endend%=Segment=%fori=2:nWI=I(:,fix(PXR1(i-1)+PXR2(i-1)/2):fix(PXR1(i)+PXR2(i)/2);figure(10+i);imshow(WI);endWI=I(:,fix(PXR1(i)+PXR2(i)/2):x);figure(10+i+1);imshow(WI);%=图像显示=%px=(1:x);%X轴坐标figure

44、(1);imshow(I);figure(2);plot(Top);holdonplot(px,y,red);gridtitle(上轮廓);figure(3);plot(Bottom);holdonplot(px,y,red);gridtitle(下轮廓);figure(4);plot(Height);grid附录D单个字符识别代码(字符3的识别):I0=imread(3.jpg);%必须为二值图像I=im2bw(I0,0.4);y0 x0=size(I);Range=sum(I);Hy=0;forj=1:y0if(Range(j)=1)Hy=Hy+1;endendRangeX=sum(I);Wx=0;fori=1:x0if(RangeX(i)=1)Wx=Wx+1;endendAmp=24/Hy;%将文字图像归一化到24像素点的高度I=imresize(I,Amp);yx=size(I);%I=bwmorph(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论