Android文字识别之tesseract的使用

关于tesseract识别工具有Google提供的版本有tesseract-android-tools,不过还有一个tesseract-two也是非常好用的,这里我们使用的是tesseract-two。tesseract是用c++实现的,需要封装Java API用于Android平台的调用。所以在使用tesseract-two之前得下载Android-NDK,下载NDK之后,解压到自己电脑的一个文件夹下,配置eclipse引用下来的NDK。

解压下载来的NDK,因为要使用ndk-build该命令又为了方便起见,不用CD来CD去的~配置一下环境变量,在path中追加ndk所解压的目录。

tesseract-two其实是Tesseract Tools for Android的一个git分支,选择它是由于操作简单,并且集成了leptonica,一个图形处理工具。所以可以在gitbub上下载来

https://github.com/rmtheis/tess-two

也可以通过git来获取想要的资源。

http://git-scm.com/download/win

资源都准备好了,然后我们使用NDK编译(Windows下的CMD进入),敲入如下的命令(编译的时间会有点久)

cd tess-two
ndk-build
android update project -t 1 --path .
ant release  

cd ..
cd eyes-two
ndk-build
android update project -t 1 --path .
ant release

eclipse里面的Android项目中导入编译好的类库,共三个项目,tess-two,tess-two-test 以及eyes-two。其中tess-two和eyes-two为android lib项目,供其它项目引用。

然后编写Java代码,但是发现会出错。主要由于在/mnt/sdcard/目录下缺少语言包,将tessdata下面的两个语言包放到sd卡的根目录下面就可以了~

import com.googlecode.tesseract.android.TessBaseAPI;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

    private static final String TESSBASE_PATH = "/mnt/sdcard/";
    private static final String DEFAULT_LANGUAGE = "eng";
    private static final String CHINESE_LANGUAGE = "chi_sim";
    private static final String TAG = "tesseract";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TessBaseAPI baseApi=new TessBaseAPI();
        baseApi.init(TESSBASE_PATH, DEFAULT_LANGUAGE);
        baseApi.setPageSegMode(TessBaseAPI.PSM_AUTO); 

        //从资源里获取一张图片
        Bitmap  bitmap = BitmapFactory.decodeResource(MainActivity.this.getResources(), R.drawable.ocr);
        baseApi.setImage(bitmap);         

        final String outputText = baseApi.getUTF8Text();
        Log.i(TAG, "识别结果:" + outputText);
        baseApi.end();

    }

}

原图:

识别结果:

时间: 2024-10-27 04:13:01

Android文字识别之tesseract的使用的相关文章

基于Tesseract OCR的文字识别Android应用开发资料整理

前言 一.Tesseract OCR引擎 Tesseract OCR是HP公司于1985~1995年间开发的商业级OCR(Optical Character Reader, 光学字符阅读器)引擎,并于2005年开放源代码.以下是它sourceforge上的网址: http://sourceforge.net/projects/tesseract-ocr/?source=directory 现在已转移到谷歌的代码服务下: https://code.google.com/p/tesseract-oc

Android ORC文字识别之识别×××号等(附源码)

项目地址https://github.com/979451341/OrcTest 我们说说实现这个项目已实现的功能,能够截图手机界面的某一块,将这个某一块图片的Bitmap传给tess-two的代码来获取扫描结果 我这里在贴出tess-two这个专为Android而创建的文字识别框架的地址https://github.com/rmtheis/tess-two 接下来我就说我如何一步一步的实现项目 1.实现基础界面,我这里贴出已完成的界面 这样是为了模仿扫描二维码的界面,因为扫描×××号码或者是手

Tesseract 3.02 OCR文字识别调查记录

安装使用: Tesseract下载地址 https://code.google.com/p/tesseract-ocr/ 目前最新版本为3.02 windows版下载解压后,使用命令行,进入解压后目录运行 命令格式: Usage:tesseract.exe imagename outputbase [-l lang] [-psm pagesegmode] e...] pagesegmode values are: 0 = Orientation and script detection (OSD

浅析android OCR文字识别

这学期有门课程老师要求用JAVA实现一个OCR文字识别的程序,所以就花了一些时间研究了一下在安卓端如何实现 OCR的引擎是用的开源项目tesseract-ocr 这个安卓版的地址:https://code.google.com/p/tesseract-android-tools/ 但是自己在编译的时候老是出错,于是在网上寻找到了别人编译好安卓可用的tess-two导入到项目中(参考文章地址 http://www.cnblogs.com/hangxin1940/archive/2012/01/13

Android应用开发进阶篇-场景文字识别

由于研究生毕业项目需要完成一个基于移动终端的场景文字识别系统,虽然离毕业尚早,但出于兴趣的缘故,近一段抽时间完成了这样一套系统.基本的架构如下: 客户端:Android应用实现拍摄场景图片,大致划出感兴趣文字区域,通过socket通信上传服务器端识别; 服务器端:Python server进行socket通信监听,连通后调用文字识别引擎(exe可执行程序),将识别结果返回; 下面是系统运行示例图: 1. 客户端 包含两个Activity,: MainActivity主界面如上图左1,选择拍摄后调

python3 for win10X64下Pillow,pytesserac和tesseract文字识别简单配置。

其实也不算自己写的,在网上东找找西找找,合一块问题就解决了. 和谐社会的程序猿不都这样么.. 上正菜. 先安装pillow windows 10上面先打开命令提示符: 注:不知道为啥我装python 3.5的时候蛋疼的选择了管理员安装,所以运行命令提示符的话也需要管理员权限.怎么操作就不说了. 1. 安装Pillow 2. 安装pytesseract 3. 再安装tesseract-ocr,注意这个很关系是文字识别的核心程序. 报错了,看来前面太顺了,python看不过去了. 至于报错的信息:e

Android身份证识别是什么

Android身份证识别应用背景 随着智能终端(智能手机及平板电脑)及移动通信(4G)的发展,人们用手机的概率比用电脑的多,可以预见未来几年60%以上的业务将会逐渐转移到智能终端系统上来.如今手机APP的应用火爆,例如查吃的住的出行的订票的O2O模式,网上支付,移动金融,移动线上订货线下配送等等等,我司也研发出Android身份证识别的应用,让需要实名制的应用更加方便,快捷,提高用户体验,为人们解决繁琐输入的问题. 原来运行在PC上的信息系统(如邮件系统.即时通信.网页浏览.协同办公.网络购物.

Sikuli Ocr文字识别

Sikuli的文字识别功能,用到的是tesseract-ocr 地址: https://github.com/tesseract-ocr/tesseract 首先settings里面开启OCR功能 Settings.OcrTextSearch = true;Settings.OcrTextRead = true; 建立region Region(1041,194,250,123)想要获取到text 那么String text = R.text();System.out.println(text)

Android证件识别系统

标签: 文通Android ***识别读取 驾照识别读取 行驶证识别读取 车辆VIN码识别 护照识别 军官证识别 名片识别 二代证读取 应用背景 随着智能终端(智能手机及平板电脑)及移动 通信(3G)的发展,原来运行在PC上的信息系统(如邮件系统.即时通信.网页浏览.协同办公.网络购物.社交网站.博客等)逐渐转移到智能终端设备上. 可以预见未来几年60%以上的业务将会逐渐转移到智能终端系统上来.在这种背景下,北京文通公司推出基于Android及 iOS平台的证件识别软件. 产品描述 文通证件识别