Android中的文字识别(论文精简版)

本文介绍了Android中使用OpenCV进行图像预处理,包括灰度图、二值图转换和去噪,然后利用Hough变换进行倾斜校正。接着,文章讲解了Tesseract OCR引擎在Android上的应用,进行文字识别。测试结果显示,该方法在识别率上表现出色,尤其是在处理倾斜文字时仍能保持较高准确率。
摘要由CSDN通过智能技术生成

这是年少的我的第一篇博客啊~~~

下图文字识别的工作流程。主要用到OpenCV4JAVA的图像处理功能与Tesseract的文字识别库。



通过图像处理、文字识别两个步骤后,接下来我们要进行的是APP的UI界面刷新,这个过程通过定义一个handler来handleMessage实现,因为android的UI更新只能在主线程里操作,并且文字处理由于时间过长需要在另外的线程里处理,所以只能通过android的这个通知刷新机制来实现。

下面是每一步的细节。

灰度图

       灰度图(Gray Scale Image)又称灰阶图,它是指把白色与灰色按对数关系分为若干等级,称作灰阶。灰度分为256阶,用灰度表示的图像称为灰度图。

       任何颜色都由三种原色组成,红色、蓝色、绿色。表示为 RGB(R,G,B)。每个颜色通道有256阶,当三个颜色通道的值均相等时,这就是一个灰阶,从此可以得出灰度可以分为256阶。由于每个点的色值可以是256的3次方约1677万种可能,所以一张三通道图片的数据量是十分浩大的,这对与程序处理极为不利,需要耗费极长的时间。但是对原图灰度化之后,一个点的色值只有256种可能,瞬间缩小工作量,而且过滤的色值对于我们课题也是并无大用的,因为文字识别一般都建立在白纸黑字的基础之上。采用灰度图,可以使得我们文字识别的算法在时间上变得可能。图2.1展示的是灰度图与原图的对比。左图为灰度图,右图为原图。从图中我们可以看出来,灰度化效果比较理想。

       本课题灰度化使用的方法是OpenCV里的cvtColor(Matsrc, Mat dst, int code);

    src:输入待处理的图片;

    dst:输出处理后的图片;

    code:颜色区域,表示从什么颜色转换成目标颜色,本课题此处用的是Imgproc.COLOR_RGB2GRAY;



二值图

    二值图是作为图像处理最常用的图。二值图像是指每个像素不是黑就是白,其灰度值没有中间过渡的图像。二值图像一般用来描述文字或者图形,其优点是占用空间少,缺点是,当表示人物,风景的图像时,二值图像只能描述其轮廓,不能描述细节。这时候要用更高的灰度级。二值图像是每个像素只有两个可能值的数字图像。人们经常用黑白、B&W、单色图像表示二值图像,但是也可以用来表示每个像素只有一个采样值的任何图像,例如灰度图像等。二值图的图像中所有的像素点只能从0和1中

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值