关闭

android tesseract-ocr实例教程(包含中文识别)(附源码)

标签: androidocrtesseract源码实例
16987人阅读 评论(51) 收藏 举报
分类:

(转载请注明出处:http://blog.csdn.net/buptgshengod


ps:鉴于大家对这个项目这么感兴趣,问题也比较多,我简单的再说几点。

1.我只是使用了这个ocr引擎,算法什么的我真的不清楚,这个引擎是比较老的,虽然是google旗下的,但是准确率并不算突出,算法是90年代的。

2.很多人问路径是否可以更改,就是语言包tess的路径。这个当然可以改,我写成这样是针对一些基础不好的童鞋。

3.很多人不会翻墙下载中文语言包,我在github里面加入了中文语言包,大家有兴趣的去下载吧。

4.有什么不会的,我建议大家仔细看下博文和评论,如果还不明白,可以给我发邮件。


1.介绍    

    快过年了,博主的新应用-屏幕取词之了老花镜的编码工作也在紧锣密鼓的进行中。下面分享一下这个应用中的核心功能ocr,也就是图片识词功能。先来看下我的实现效果。上图是在网上随便截下来的一个带有英文的页面,下图是我的应用的实现效果。



2.实现

   (1)首先要下载我的源码和语言包,博客下方会给出地址。
    (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=


9
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android之Tesseract OCR

本文将介绍android平台上如何使用tesseract实现OCR。 tesseract出生于HP实验室,如今由Google负责维护,是最好的开源OCR Engine之一,并且支持中文。 tesseract个人觉得有两个需要考虑的点,一是大,二是慢,特别是中文。如果系统对空间和时间要求非常高,那么t...
  • kimylrong
  • kimylrong
  • 2013-09-06 18:20
  • 29150

找到了一个利用tesseract做安卓OCR应用的过程讲解

今天开毕设例会,老师说本周需要在手机上实现识别功能,所以先不做界面设计了,而是转而做功能。 下文是一个利用tesseract做安卓OCR应用的文章 ps.不知为什么打不开Google的code网页,求外网。 http://my.oschina.net/yushulx/blog/359468 目...
  • SmartDoubleXiao
  • SmartDoubleXiao
  • 2015-04-02 13:33
  • 3119

Android Tesseract识别数字

最近接触到Tesseract,有个感触就是人与人之间的差距可能就在 Google和Baibu 之间 好了,话不多说,关于Tesseract背景什么的我不介绍了 入正题: step1:  首先去http://code.google.com/p/tesseract-ocr/do...
  • zhuxu820_
  • zhuxu820_
  • 2015-04-25 12:25
  • 2849

OCR实时扫描识别中英文--tess_two在Android的使用

本篇博客是有了实时扫描识别的需求,然后看到了一篇博客,在其基础上按项目需求改进而成。感谢Si-Kang的贡献,基于交流进步的想法这里把我处理的一些问题写出来 转载地址:http://blog.csdn.net/mr_sk/article/details/72877492#comments ...
  • g_ying_jie
  • g_ying_jie
  • 2017-06-28 16:17
  • 1329

tess_two Android图片文字识别

文字识别一般都用的tesseract-ocr。 GitHub:https://github.com/tesseract-ocr/tesseract 而Android对应的比较推荐的有个tess-two。 GitHub:https://github.com/rmtheis/tess-two先看效...
  • qq_25806863
  • qq_25806863
  • 2017-03-16 18:38
  • 3810

Android之Tesseract OCR tess-two的使用

第一步:下载文件 第二步:编译出so文件 第三步:导入so文件和java源码 第四部:配制语言包tessdata 第五部:简单使用
  • yd_yandong
  • yd_yandong
  • 2016-10-19 16:13
  • 2184

如何通过Tesseract开源OCR引擎创建Android OCR应用

Tesseract是遵守 Apache License 2.0协议的开源OCR引擎。这里介绍下如何在Android平台编译Tesseract,以及如何快速创建一个简单的OCR应用。 参考原文:Making an Android OCR Application wi...
  • yushulx
  • yushulx
  • 2014-12-23 10:18
  • 706

Android OCR文字识别 实时扫描手机号(极速扫描单行文本方案)

遇到一个需求,要用手机扫描纸质面单,获取面单上的手机号,最后决定用tesseract这个开源OCR库,移植到Android平台是tess-two Android平台tess-two地址:https://github.com/tesseract-ocr 本文Demo地址:http://blog.c...
  • Mr_Sk
  • Mr_Sk
  • 2017-06-06 13:57
  • 4910

OCR----Tesseract引擎核心类TessBaseAPI的操作

前言写了两篇博文介绍了: Python调用Tesseract引擎(Ubuntu下) Tesseract 3.x 架构及原理解析 这一篇将更加深入OCR的世界!不得不把一些和本专栏(后面会整理出一个系列)相关的参考资料列出来,帮助大家建立知识体系。1 Tesseract的环境安装 –> 谷震...
  • guzhenping
  • guzhenping
  • 2016-03-31 22:12
  • 5909

tessnet2_32及语言包和验证码使用方法

  • 2016-08-09 12:07
  • 1.31MB
  • 下载
    我的微信公众号

    作者公众号:凡人机器学习

    凡人机器学习

    机器学习微信交流群
    为了方便大家学习与交流,凡人云近日已开通机器学习社群! 分享“凡人机器学习”公众号名片到40人以上的大群并截图给小助手,小助手就会拉你入群 在这里你可以得到: 1.各种学术讨论 2.最新的资料分享 3.不定期的征文以及联谊活动! 小助手微信号:meiwznn
    作者新书《机器学习实践应用》

    主要讲述算法和业务的结合,适合初学者

    机器学习实践应用

    京东地址

    个人资料
    • 访问:816593次
    • 积分:10972
    • 等级:
    • 排名:第1711名
    • 原创:232篇
    • 转载:40篇
    • 译文:0篇
    • 评论:459条
    博客专栏
    统计