android tesseract-ocr实例教程(包含中文识别)(附源码)
(转载请注明出处:http://blog.csdn.net/buptgshengod)
1.介绍
快过年了,博主的新应用-屏幕取词之了老花镜的编码工作也在紧锣密鼓的进行中。下面分享一下这个应用中的核心功能ocr,也就是图片识词功能。先来看下我的实现效果。上图是在网上随便截下来的一个带有英文的页面,下图是我的应用的实现效果。
2.实现
(1)首先要下载我的源码和语言包,博客下方会给出地址。(源码设为10分,是想让大家珍惜别人的劳动成果)
(2)把代码中的lib中的两个文件夹和jar文件导入。
(3)需要注意的有两点请认真看下面贴出的代码的注释
- package com.example.tess;
- import java.io.File;
- import com.googlecode.tesseract.android.TessBaseAPI;
- import android.os.Bundle;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- public class MainActivity extends Activity {
- private TextView text;
- TessBaseAPI baseApi;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Button bt=new Button(getBaseContext());
- bt=(Button)findViewById(R.id.button1);
- text=new TextView(getBaseContext());
- text=(TextView)findViewById(R.id.textView1);
- baseApi=new TessBaseAPI();
- //(注意)前面的地址是语言包的父级。eng表示解析的是英文
- baseApi.init("/mnt/sdcard/tesseract/", "eng");
- bt.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View sourse) {
- // text.setText("sb");
- //设置要ocr的图片bitmap,要解析的图片地址(注意)
- baseApi.setImage(getDiskBitmap("/mnt/sdcard/mypic.bmp"));
- //根据Init的语言,获得ocr后的字符串
- String text1= baseApi.getUTF8Text();
- text.setText(text1);
- //释放bitmap
- baseApi.clear();
- }
- }
- );
- }
- /*
- * 将本地图片转换为bitmap
- */
- private Bitmap getDiskBitmap(String pathString)
- {
- Bitmap bitmap = null;
- try
- {
- File file = new File(pathString);
- if(file.exists())
- {
- bitmap = BitmapFactory.decodeFile(pathString);
- }
- } catch (Exception e)
- {
- // TODO: handle exception
- }
- return bitmap;
- }
- }
(4)图片越大耗时越长,本例耗时差不多半分钟
3.源码及相关文件下载地址
好吧,好多人说代码下载不了或者说10分太贵了,这里提供一下免费下载地址。
其中tess文件夹是android程序
tessdata是语言包
4.中文识别
可到以下地址下载,将其解压放到/tesseract/tessdata下面,然后将eng改为chi_sim
http://code.google.com/p/tesseract-ocr/downloads/detail?name=chi_sim.traineddata.gz&can=2&q=
可到以下地址下载,将其解压放到/tesseract/tessdata下面,然后将eng改为chi_sim
http://code.google.com/p/tesseract-ocr/downloads/detail?name=chi_sim.traineddata.gz&can=2&q=