Kotlin入门系列教程—图片识别

来源:互联网 发布:java jackson map 编辑:程序博客网 时间:2024/04/28 07:08

想实现一个识别图片中字母的功能,网上查到了Tesseract,一个开源的OCR,可以识别多种格式的图像文件并将其转换成文本。

因为Tesseract是C++写的,尝试了自己编译,用别人编译好的包,将源码放入工程中,都没能成功。最后在找到了github上它的一个分支tess-two,依照上面的用法,直接加入gradle依赖,做为一个module,很顺利的跑起来了。build.gradle中加入tess-two的依赖:

compile 'com.rmtheis:tess-two:7.0.0'

选择或拍照,识别图片中的文字,最终效果如下(最下面为识别的文字):

从零kotlin语言android开发06——图片识别

加入依赖后,能获取com.googlecode.tesseract.android.TessBaseAPI对象了,首先做些初始化,设置tess语言包的目录,语言包必须放在tessdata目录下(这里下载的是eng.traineddata)。

从零kotlin语言android开发06——图片识别

通过API获取图片文字比较简单,传入Bitmap对象即可:

public String getOcrResult(Bitmap bitmap) {

调用相机或选择图片后,获取OCR识别的结果,需要等待一会,显示进度条,开一个线程去处理,结果显示在TextView中,代码如下: