android tesseract-ocr实例教程(包含中文识别)(附源码)
(轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/buptgshengod)
ps:鑒于大家對(duì)這個(gè)項(xiàng)目這么感興趣,問題也比較多,我簡(jiǎn)單的再說幾點(diǎn)。
1.我只是使用了這個(gè)ocr引擎,算法什么的我真的不清楚,這個(gè)引擎是比較老的,雖然是google旗下的,但是準(zhǔn)確率并不算突出,算法是90年代的。
2.很多人問路徑是否可以更改,就是語(yǔ)言包tess的路徑。這個(gè)當(dāng)然可以改,我寫成這樣是針對(duì)一些基礎(chǔ)不好的童鞋。
3.很多人不會(huì)翻墻下載中文語(yǔ)言包,我在github里面加入了中文語(yǔ)言包,大家有興趣的去下載吧。
4.有什么不會(huì)的,我建議大家仔細(xì)看下博文和評(píng)論,如果還不明白,可以給我發(fā)郵件。
1.介紹 ? ?
? ? 快過年了,博主的新應(yīng)用-屏幕取詞之了老花鏡的編碼工作也在緊鑼密鼓的進(jìn)行中。下面分享一下這個(gè)應(yīng)用中的核心功能ocr,也就是圖片識(shí)詞功能。先來看下我的實(shí)現(xiàn)效果。上圖是在網(wǎng)上隨便截下來的一個(gè)帶有英文的頁(yè)面,下圖是我的應(yīng)用的實(shí)現(xiàn)效果。
2.實(shí)現(xiàn)
? ?(1)首先要下載我的源碼和語(yǔ)言包,博客下方會(huì)給出地址。 ? ? (2)把代碼中的lib中的兩個(gè)文件夾和jar文件導(dǎo)入。 ? ? (3)需要注意的有兩點(diǎn)請(qǐng)認(rèn)真看下面貼出的代碼的注釋 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;@Overrideprotected 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();//(注意)前面的地址是語(yǔ)言包的父級(jí)。eng表示解析的是英文baseApi.init("/mnt/sdcard/tesseract/", "eng");bt.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View sourse) {// text.setText("sb");//設(shè)置要ocr的圖片bitmap,要解析的圖片地址(注意)baseApi.setImage(getDiskBitmap("/mnt/sdcard/mypic.bmp"));//根據(jù)Init的語(yǔ)言,獲得ocr后的字符串String text1= baseApi.getUTF8Text();text.setText(text1);//釋放bitmapbaseApi.clear();}});}/** 將本地圖片轉(zhuǎn)換為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)圖片越大耗時(shí)越長(zhǎng),本例耗時(shí)差不多半分鐘
3.源碼及相關(guān)文件下載地址
好吧,好多人說代碼下載不了或者說10分太貴了,這里提供一下免費(fèi)下載地址。 其中tess文件夾是android程序 tessdata是語(yǔ)言包
4.中文識(shí)別
?
?可到以下地址下載,將其解壓放到/tesseract/tessdata下面,然后將eng改為chi_sim
http://code.google.com/p/tesseract-ocr/downloads/detail?name=chi_sim.traineddata.gz&can=2&q=
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的android tesseract-ocr实例教程(包含中文识别)(附源码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于内存泄漏
- 下一篇: 【android-tips】instal