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

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: 不需要任何so库,也兼容6.0以上版本把tess-two添加到项目里,在app 的build.gradle里添加下面dependencies { compile 'com.rmtheis:tess-two:7.0.0'}123然后从https://github.com/tesseract-ocr/tessdata/tree/3.04.00 下载项目需要的训练语言数据,下载后复制,到assets/tessdata目录下,之后把它复制到SD卡。

不需要任何so库,也兼容6.0以上版本

把tess-two添加到项目里,在app 的build.gradle里添加下面

dependencies {
    compile 'com.rmtheis:tess-two:7.0.0'
}
  • 1
  • 2
  • 3

然后从https://github.com/tesseract-ocr/tessdata/tree/3.04.00 下载项目需要的训练语言数据,下载后复制,到assets/tessdata目录下,之后把它复制到SD卡。

  /**
     * 初始化ocr识别需要用到的训练数据
     */
private void initOcr() {
        datapath = getFilesDir() + "/tesseract/";
        checkFile(new File(datapath + "tessdata/"), "chi_sim");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
/**
     * @param dir
     * @param language chi_sim eng
     */
    private void checkFile(File dir, String language) {
        //如果目前不存在则创建方面,然后在判断训练数据文件是否存在
        if (!dir.exists() && dir.mkdirs()) {
            copyFiles(lag);
        }
        if (dir.exists()) {
            String datafilepath = datapath + "/tessdata/" + language + ".traineddata";
            File datafile = new File(datafilepath);
            if (!datafile.exists()) {
                copyFiles(lag);
            }
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
/**
 把训练数据放到手机内存
 * @param language "chi_sim" ,"eng"
 */
    private void copyFiles(String language) {
        try {
            String filepath = datapath + "/tessdata/" + language + ".traineddata";
            AssetManager assetManager = getAssets();
            InputStream instream = assetManager.open("tessdata/" + language + ".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();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

做完准备工作之后,待相机取到图片之后,调用doOcr方法即可获得识别结果,需要注意的是,该方法需要再子线程进行。

  public void doOcr(Bitmap bitmap, String language) {

        TessBaseAPI baseApi = new TessBaseAPI();
        baseApi.init(datapath, language);
        bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
        baseApi.setImage(bitmap);
        String resultTxt = baseApi.getUTF8Text();
        baseApi.clear();
        baseApi.end();
        //get resultTxt to do something
    }
目录
相关文章
|
6月前
|
文字识别 Android开发 C++
Tesseract OCR集成Android Studio实现OCR识别
Tesseract OCR集成Android Studio实现OCR识别
326 0
|
前端开发 JavaScript Java
贼简单的Android计时工具,老铁,还不试用起来
今天呢,给大家带来的是一个非常好用的计时工具,真的非常好用,用过之后,你会发现,延时和定时,真的从未如此简单。
|
安全 Java Shell
Android的热修复技术--阿里的hotfix试用
Android的热修复技术--阿里的hotfix试用
|
文字识别 Linux Apache
Android平台OCR工具之Tess-two的编译
Android平台OCR工具之Tess-two的编译
460 0
|
Web App开发 机器学习/深度学习 文字识别
[雪峰磁针石博客]免费的好用的OCR工具 人脸识别等图像识别工具
tesseract -- 推荐 Tesseract 已经有 30 年历史,开始它是惠普实验室的一款专利软件,然后在 2005 年开源,自 2006 年后由 Google 赞助进行后续的开发和维护。 在 1995 年 Tesseract 曾是世界前三的 OCR 引擎,而且在现在的免费 OCR 引擎中,其识别精度也仍然是出类拔萃的。
|
文字识别 Android开发 C++
Tesseract OCR集成Android Studio实现OCR识别
Tesseract OCR集成Android Studio实现OCR识别 介绍 Tesseract OCR谷歌开源的OCR识别引擎,支持多国文字包括中文简体与繁体。最新的版本是3.x。
2171 0
|
6天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
34 19
|
6天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
30 14