当前位置: 首页 > 专利查询>云南大学专利>正文

一种新型的数字提取和识别的方法及系统技术方案

技术编号:13455507 阅读:37 留言:0更新日期:2016-08-02 20:27
本发明专利技术公开了一种新型的数字提取和识别的方法及系统,包括:移动电子设备通过扫描识别与处理手写数字;通过OSTU算法将扫描结果变为黑白色;通过垂直投影分割算法将一系列的数字分割为一个个独立的个体;通过Hilditch算法或ZS算法将数字细化;通过双线性或双立方插值算法对细化后的数字图像进行缩放;通过粗网格特征提取法对归一化后的数字图像进行结构特征的提取,生成特征向量并输入到识别器中;通过已经过训练的SVM识别器对输入的特征向量进行分类识别,得到数字图像的识别结果;将单个的识别结果组合起来形成一个字符串并输出到用户界面。本发明专利技术通过扫描将手写数字录入电子设备,以便于下一步的操作,更加方便快捷。

【技术实现步骤摘要】

本专利技术属于计算机应用
,尤其涉及一种新型的数字提取和识别的方法及 系统。
技术介绍
阿拉伯基本数字只有十位,但不同认得书写方法也不同,作为全世界各个国家各 个地区都在使用的数字,其书写上具有地域特征,很难完全兼顾世界的各种写法。 在读取手写数字信息时,可能会由于书写潦草,难以辨认;并且数字串过长时,还 需要重复读取来确保信息的正确性,比较费时。
技术实现思路
本专利技术的目的在于提供一种新型的数字提取和识别的方法及系统,旨在解决在读 取手写数字信息时,可能会由于书写潦草,难以辨认;并且数字串过长时,还需要重复读取 来确保信息的正确性,比较费时的问题。 本专利技术是这样实现的,一种新型的数字提取和识别的方法,所述新型的数字提取 和识别的方法包括以下步骤: 移动电子设备通过扫描识别与处理手写数字; 通过0STU算法将扫描结果变为黑白色; 通过垂直投影分割算法将一系列的数字分割为一个个独立的个体; 通过Hilditch算法或ZS算法将数字细化;通过双线性或双立方插值算法对细化后的数字图像进行缩放,使其与训练样本的 格式统一; 通过粗网格特征提取法对归一化后的数字图像进行结构特征的提取,生成特征向 量并输入到识别器中; 通过已经过训练的SVM识别器对输入的特征向量进行分类识别,得到数字图像的 识别结果; 将单个的识别结果组合起来形成一个字符串并输出到用户界面,对于每个子图 片,predict (img)函数返回一个只包含一个数字的字符串,建立一个字符串缓冲区 StringBuilder sb = new StringBuilder(),然后将每个子图片预测得到的结果添加到缓 冲区813(即813.3口口611(1(代81111:)),最后再执行813.1:〇51:1';[即()就达到了组合的效果。进一步,通过0STU算法将扫描结果变为黑白色具体包括:首先将彩色图片灰度化,即取图片中每个像素点的RGB值,分别取得RecUGreen、 Blue的亮度值,根据灰度化公式算出该点的灰度值,像素点亮度值及灰度值获取方式如下: Red=(RGB?16)&0xff ; Green =(RGB?8)&0xff; Blue = RGB&0xff ; Gray = (int) ((Red*29+Green*150+Blue*77+128)?8);其次经过获得源图像的灰度值矩阵gray,灰度值就是histData[]中的索引或 角标,求出图像中所有灰度值及出现次数的乘积的总和sum; 然后对于t从0到255,计算出由t得到的两类间的距离,并且保留当前状态下使两 类距离最大的t值,计算两类的距离公式如下: disBF=(flaot)wB*(float)*wF*(mB-mF)*(mB-mF);其中,wB和wF分别为背景类于前景类的权重,mB和mF分别为背景类和前景类的灰 度值平均值,細、'\^、11113、11^的计算如下: wB+ = histData;//要满足wB! =0 wF = total-wB;//total =图像像素点个数,并且要满足wF! = 0 sumB+= (float) (t*histData); mB = sumB/wB; mF = (sum- sumB) /wF ; 最后新建一张源图像大小的图像,用于保存源图像经过二值化后的各像素点的 值,通过选取到阀值t后,再遍历图像灰度值gray,让其中值大于阀值t的置为白色的 RGB值Oxffffffff,值小于等于阀值t的置为黑色的RGB值OxffOOOOOO。最后返回新建的图 像,即源图像的二值化图像。 进一步,通过垂直投影分割算法将一系列的数字分割为一个个独立的个体具体包 括: 首先以图像的宽度建立一个影子数组vertical_shadow ++,得到 一个保存图像影子信息的数组verti cal_shadow = 10表示源图 像中在x = l的这条光线垂直照射下,图像在该位置的黑色像素点个数为10; 其次遍历vertical_shadow这 个范围就是一个子图片的范围,直接调用获取子图片的方法来得到这个数字子图片;同理, 获得整张图像的一系列数字子图片; 然后去除图像不必要的高度,即目标像素的上面和下面会有较大的空白区域,对 于所得到的子图片,从上到下遍历图像的像素点,直到碰到下一个像素点为黑色像素点时, 记录下此时点的纵坐标记为y_up,然后再从下到上遍历图像的像素点,同理会得到另一个 纵坐标记为y_down,根据这两个参赛,切除子图片中不必要的空白区域; 最后对于整张图片进行数字子图片处理,而对于得到的每张子图片再进行除图像 不必要的高度处理,得到满足需求的一系列子图片,然后将子图片保存在一个ArrayListO 中进行返回。进一步,通过Hilditch算法或ZS算法将数字细化具体包括:首先获取图像的RGB代表值数组rgbs,即遍历图像中的像素点,当其值为黑色 像素时,在rgbs中相应位置的值为1,当其值为白色像素时,rgbs的值为0; 然后遍历rgbs,对满足以下条件的所有点p进行标记,即将其值变为-1: a)p为前景色像素; b)xl、叉3、叉5、叉7不全部为1; c)xl~x8中至少有2个为1; d)点p的8连通联结数为1; e)假设x3已经标记为删除,那么当x3被删除后,p的8连通联结数为1; f)假设x5已经标记为删除,那么当x5被删除后,p的8连通联结数为1; 点p的8连通联结数计算公式如下: 其中i代表X取非,比如χ = 0,那么i = 1;(前景色与背景色互换)最后遍历rgbs,此时将经过②标记后的像素点置为背景色像素,即将源图像 相应的位置(X,y)的像素点值改为〇xf f f f f f f f,然后将经过细化后的图像返回。 进一步,通过双线性或双立方插值算法对细化后的数字图像进行缩放具体包括: 首先新建目标规模的图像,然后遍历该图像中每个像素点,对于像素点D(x,y),将 其映射到源图像S( i+t,j+u)上,映射公式为: X' =x*(srcW/destW) ;y ' =y*(srcH/destH); 其中x' =i+t,y' = j+u,通过从x'和y'中分别提取出i、t、j、u; 然后点p的4个最邻近点分别为:5(1,」)、5(1+1,」)、5(1,」+1)、5(1+1,」+1),令它们 的权值分别为W( i,j)、W( i+1,j)、W( i,j+1)、W( i+Ι,j+Ι),其中: w(i,j)=(l_t)*(l_u); ff(i+l, j)=t*(l-u); w(i, j+l) = (l_t)*u; ff( i+1, j+1) =t*u; 最后根据公式求得目标像素 D(x,y)的像素值,如下: D(x,y) = S(i,j)*W(i,j)+S(i+l,j)*W(i+l,j)+S(i, j+l)*W(i, j+l)+S(i+l,j+1)* W(i+l,j+l) 双立方插值算法中16个邻近点的权值是由R( x)函数求出的,在本函数库我实现了 5个插值核当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种新型的数字提取和识别的方法,其特征在于,所述新型的数字提取和识别的方法包括以下步骤:移动电子设备通过扫描识别与处理手写数字;通过OSTU算法将扫描结果变为黑白色;通过垂直投影分割算法将一系列的数字分割为一个个独立的个体;通过Hilditch算法或ZS算法将数字细化;通过双线性或双立方插值算法对细化后的数字图像进行缩放,使其与训练样本的格式统一;通过粗网格特征提取法对归一化后的数字图像进行结构特征的提取,生成特征向量并输入到识别器中;通过已经过训练的SVM识别器对输入的特征向量进行分类识别,得到数字图像的识别结果;将单个的识别结果组合起来形成一个字符串并输出到用户界面,对于每个子图片,predict(img)函数返回一个只包含一个数字的字符串,建立一个字符串缓冲区StringBuilder sb=new StringBuilder(),然后将每个子图片预测得到的结果添加到缓冲区sb(即sb.append(result)),最后再执行sb.toString()就达到了组合的效果。

【技术特征摘要】

【专利技术属性】
技术研发人员:李彤于倩李朝喜李京京夏婷王梦庭徐琳琳毛敏易帅姚希粲
申请(专利权)人:云南大学
类型:发明
国别省市:云南;53

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1