网上大多是eclipse的项目,因为我用的是AS,所以说一下怎么配置。

身份证图片资料来自百度。

一、导入相关文件

其实我们不用自己编译,可以把别人项目编译好的jar包和so库直接拿来用。因为识别的效果只与字库有关,要识别什么字体自己选用字库就行。

1、新建libs文件夹,导入jar包

2、在main文件夹下新建jniLibs文件夹,把armxxxx两个文件复制过去。

注意so库不能乱放,不然会出现java.lang.UnsatisfiedLinkError异常。

3、我已经在github上提供了so库和jar包的资源了,可以直接下载使用。

配置好的路径:

二、实例代码

1、要实现识别功能,手机下要放一个tessdata文件夹,这是我们的字库。我的github项目上提供了下载,包括中英文。

2、直接在代码中调用api,传入字库路径和字库名字

3、传入图片,获取结果

4、识别需要一点时间,为了不让app开启就卡死,我用了handler

5、因为要读取根目录下的tessdata文件,所以app得加上读取SD卡的权限,不然会报错

public class MainActivity extends AppCompatActivity {

    private Bitmap srcBitmap;
EditText editText;
String result;
Handler handler; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); handler = new Handler(){ @Override
public void handleMessage(Message msg) {
super.handleMessage(msg); editText.setText(result); }
}; editText = (EditText)findViewById(R.id.editText); srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test); new Thread(new Runnable() {
@Override
public void run() { result = doOcr(srcBitmap,"/chi_sim");
Message msg = new Message();
handler.sendMessage(msg); }
}).start(); } /**
* 进行图片识别
*
* @param bitmap
* 待识别图片
* @param language
* 识别语言
* @return 识别结果字符串
*/
public String doOcr(Bitmap bitmap, String language) {
TessBaseAPI baseApi = new TessBaseAPI(); baseApi.init(getSDPath(), language); // 必须加此行,tess-two要求BMP必须为此配置
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); baseApi.setImage(bitmap); String text = baseApi.getUTF8Text(); baseApi.clear();
baseApi.end(); return text;
} /**
* 获取sd卡的路径
*
* @return 路径的字符串
*/
public static String getSDPath() {
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();// 获取外存目录
}
return sdDir.toString();
} }

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.binbin.tesseracttest.MainActivity"> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/test" android:layout_centerHorizontal="true"
android:layout_marginTop="103dp"
android:id="@+id/imageView" /> <EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="识别结果"
android:id="@+id/editText"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="99dp" />
</RelativeLayout>

 

权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

  

三、效果图

最后是Github上的项目地址:

https://github.com/wzb19960208/TesseractSample

Android Studio里面配置Tesseract的更多相关文章

  1. Opencv4android的Android Studio项目配置及实例下载

    因为软件竞赛的项目会用到Opencv fo rAndroid,所以就研究了一下如何在Android Studio上配置Opencv4Android 环境概述: Android Studio 2.3 O ...

  2. 浅谈Kotlin(一):简介及Android Studio中配置

    浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 今日新闻:谷 ...

  3. android studio+grade配置构建

    Android 构建系统编译应用资源和源代码,然后将它们打包成可供您测试.部署.签署和分发的 APK.android Studio 使用 Gradle 这一高级构建工具包来自动化执行和管理构建流程,同 ...

  4. Android studio gradle配置完整版(转)

    Android studio gradle配置完整版https://my.oschina.net/u/1471093/blog/539075 Android studio 自定义打包apk名 - pe ...

  5. Opencv4android的Android Studio环境配置及项目实例下载

    因为软件竞赛的项目会用到Opencv for Android,所以就研究了一下如何在Android Studio上配置Opencv4Android 环境概述: Android Studio 2.3 O ...

  6. Android Studio最新配置教程2016

    http://blog.csdn.net/wen_demo 一.Android studio 基本简单介绍 1.Android studio和Eclipse的差别: 1.Studio中有Project ...

  7. Android Studio如何配置CURL指令一键打包apk上传至蒲公英

    Android Studio如何配置CURL指令一键打包apk上传至蒲公英 第一步:在所需要打包的模块build.gradle文件中加入如下代码: android{ buildTypes { //配置 ...

  8. Android Studio安装配置、环境搭建详细步骤及基本使用

    前言 Android Studio的安装配置及使用篇终于来啦~ 废话不多说,以下针对JDK正确安装(及其环境变量配置完毕,即Java开发环境下).Android Studio的安装,配置,以及创建工程 ...

  9. android studio ndk配置和ndk开发

    配置开发环境: 1:下载ndk,导入android studio中. 2:在项目中引入NDK   3:在计算机path变量中导入NDK路径,在编译.h文件的时候会用到. 一:建立java的native ...

随机推荐

  1. Linux下iptables介绍

    ptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. filter负责过滤数据包,包括的规则链有,input,outp ...

  2. 网络编程(Socket)

    引言: 从2007年毕业开始一直从事.net web应用程序开发,负责冶金行业的MES系统开发,写了差不多6年左右的代码,由于工作性质是需要驻厂开发,一直出差,所以在2013年跳槽了,目前从事安防行业 ...

  3. php simple_html_dom

    这个真的很好用,如果用正则,就太麻烦了. 首先,下载simple_html_dom,用include_once就可以使用了. 可以直接定位,可以像个对象一样操作,很方便. $ret=file_get_ ...

  4. BZOJ4550: 小奇的博弈(NIMK博弈& 组合数& DP)

    4550: 小奇的博弈 Time Limit: 2 Sec  Memory Limit: 256 MBSubmit: 159  Solved: 104[Submit][Status][Discuss] ...

  5. JanusGraph Server配置

    转自:https://www.cnblogs.com/jiyuqi/p/320267ff0b5052fad4613945e58ea1f1.html JanusGraph使用Gremlin Server ...

  6. iOS中scrollview自动滚动的实现

    http://bbs.csdn.net/topics/390347330 原问题是,我要展现给用户的内容放在scrollview中,让内容从上到底自动滚动,我最开始用的是DDAutoscrollvie ...

  7. Sprint第一个冲刺(第三天)

    一.Sprint介绍 今天我们完成了简单登录界面及美化的任务,完成了此次整个Sprint的百分之十五. 下面是实验截图: 二.Sprint周期 看板: 燃尽图:

  8. gprof的使用介绍

    转于:http://blog.chinaunix.net/uid-25194149-id-3215487.html #不知道这是在哪里找的了,感谢各位~ 性能分析工具gprof介绍Ver:1.0 目录 ...

  9. tar 打包处理文件

    基本格式:tar [Options] file_archive //注意tar的第一参数必须为命令选项,即不能直接接待处理文件 Option是由三部分组成,分别是操作类型(创建,查看,解压),压缩处理 ...

  10. 执行npm install报错:npm ERR! code EINTEGRITY

    命令行执行npm install报错如下: D:\frontend\viewsdev>npm install npm ERR! code EINTEGRITY npm ERR! sha512-8 ...