Android Studio 教你3步会用tesseract

168人阅读 评论(0) 收藏 举报
分类:

这里写图片描述

资源链接:

Tesseract 两个重要的github连接:
https://github.com/rmtheis/tess-two
https://github.com/tesseract-ocr/tessdata

tesseract具体使用:

1、添加依赖 compile 'com.rmtheis:tess-two:8.0.0'(这应该再熟悉不过了)
2、从上面的第二个tessdata的链接下载对应的字库,创建assets目录,添加字库,如下图
这里写图片描述
3、编码
(1)初始化TessBaseAPI
路径

 private  String mDataPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/tessdata/";

下面创建目录跟复制字库我都放在了onCreate方法中,但是这样的话activity会出现空白一小会儿。

//创建父目录
File parentfile=new File(mDataPath);
        if (!parentfile.exists()){
            parentfile.mkdir();
        }
copyFiles();//复制字库,具体代码见下文
String lang = "chi_sim+eng";//中文简体+英文
mTess = new TessBaseAPI();
mTess.init(mFilePath, lang);//mFilePath不知道?

(2)复制字库

   private void copyFiles() {
   //循环复制2中字库
            String[] datafilepaths = new String[]{mDataPath + "/chi_sim.traineddata",mDataPath+"/eng.traineddata"};
            for (String datafilepath : datafilepaths) {
                copyFile(datafilepath);
            }
    }

    private void copyFile(String datafilepath) {
        try {
            String filepath = datafilepath;
            String[] filesegment = filepath.split(File.separator);
            String filename = filesegment[(filesegment.length - 1)];//获取chi_sim.traineddata和eng.traineddata文件名
            AssetManager assetManager = getAssets();
            InputStream instream = assetManager.open(filename);//打开chi_sim.traineddata和eng.traineddata文件
            OutputStream outstream = new FileOutputStream(filepath);

            byte[] buffer = new byte[1024];
            int read;
            while ((read = instream.read(buffer)) != -1) {
                outstream.write(buffer, 0, read);
            }
            outstream.flush();
            outstream.close();
            instream.close();
            File file = new File(filepath);
            if (!file.exists()) {
                throw new FileNotFoundException();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

(3)获得结果
这一步属于是耗时操作,建议异步进行AsyncTask或者Rxjava

Long starttime=System.currentTimeMillis();
String OCRresult = null;
mTess.setImage(bitmap);
OCRresult = mTess.getUTF8Text();
Long endtime=System.currentTimeMillis();
Log.e("耗时时间",(endtime-starttime)+"");

总结:
1、两种语言进行的识别时间会比单纯一种语言的识别慢很多倍,如果是识别少量文字,速度还可以,但是如果需要识别大量文字,几乎是要崩溃……这个有待改进
2、上图我还没有加osd.traineddata,试了下旋转过的图片效果不好
3、识别效果的好坏还跟你处理的图片的好坏有关系,多方面因素吧。

查看评论

Tesseract OCR集成Android Studio实现OCR识别

Tesseract OCR集成Android Studio实现OCR识别介绍Tesseract OCR谷歌开源的OCR识别引擎,支持多国文字包括中文简体与繁体。最新的版本是3.x。可以通过安装程序安装...
  • jia20003
  • jia20003
  • 2016-11-21 10:50:52
  • 13781

Android Studio里面配置Tesseract

达人科技 2016-10-05 16:35 网上大多是eclipse的项目,因为我用的是AS,所以说一下怎么配置。 身份证图片资料来自百度。 一、导入相关文件 其实我们不用自己编译,可以把...
  • u011277123
  • u011277123
  • 2016-10-08 11:06:55
  • 1800

Android Studio配置OpenCV+Tesseract-OCR识别图片

OpenCV && Tesseract-OCR in Android Studio Java入门第一季Java入门第二季Java入门第三季 一、版本说明 Android 安卓开发工具采用an...
  • qq_26074263
  • qq_26074263
  • 2017-08-25 17:00:40
  • 1666

OCR 图片识别 Tesseract基于Android Studio的示例演示搭建

前言:之前在外包网站看到身份证识别和车牌号的识别的需求,立马就想到了OCR技术。国内三巨头BAT的云计算都提供了OCR技术服务,但他们的API大都收费;如何自己实现OCR呢?google开源的Tess...
  • qq_33440246
  • qq_33440246
  • 2017-11-28 14:36:01
  • 517

离线状态下android studio的tesseract配置方法

最近由于工作的要求,需要在android上做一个能进行OCR的应用,作为一名初级码农,要做的第一步当然是在网上去找找有没有现成的库啦。经过一番挑选,发现相对成熟的安卓OCR库包括tesseract和O...
  • class_brick
  • class_brick
  • 2016-12-27 20:13:56
  • 1160

android ocr 图像识别之tess-two试用

把tess-two添加到项目里,在app 的build.gradle里添加下面dependencies { compile 'com.rmtheis:tess-two:7.0.0' }然后从h...
  • aikongmeng
  • aikongmeng
  • 2017-06-16 10:58:40
  • 1008

Android Studio中配置及使用OpenCV示例(一)

前言:最近在做项目移植,项目较大,在Eclipse中配置的Jni及OpenCV环境没任何问题,但是迁移到Studio中就问题一大堆,网上也找了一些资料参考及学习,很感谢前人留下的总结及经验。关于在AS...
  • gao_chun
  • gao_chun
  • 2015-10-23 16:09:04
  • 30766

Tesseract在Android上的使用

上一篇文章介绍了Tesseract在Mac平台上的使用,现在看看怎么实现在Android上进行OCR识别。这里基于个人之前自己做的一个APP上集成,首先,修改app/build.gradle,增加对t...
  • Linjingke32
  • Linjingke32
  • 2017-06-07 10:30:55
  • 1434

android中tesseract-ocr自定义字库的介绍

看到网上有很多人转载,但是都不太全,自己了点时间研究了下,测试成功!分享出来,大家一起进步。           在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,...
  • u010897392
  • u010897392
  • 2015-04-28 17:26:13
  • 1910

Android Studio 教你3步会用tesseract

资源链接: Tesseract 两个重要的github连接: https://github.com/rmtheis/tess-two https://github.com/tesseract-o...
  • danfengw
  • danfengw
  • 2018-02-01 17:24:02
  • 168
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 38万+
    积分: 6702
    排名: 4406
    博客专栏
    最新评论