Tesseract是一個HP和google先后維護的開源OCR(ocr,optical character Recognition)引擎赴叹,3.0以后已經(jīng)支持中文識別.如何在android上使用它呢躲舌,那就不得不提另一個開源項目tess-two,tess-two
是一個在android上使用tesseract的實例累驮,tess-two
中有三個主要目錄:
- eyes-two
對leptonica的封裝
- tess-two-test
ocr的測試代碼
- tess-two
對Tesseract的封裝
下載tess-two源碼
首先刃鳄,將tess-two代碼從github上clone下來:(也可知直接從這個地址下載)
git@github.com:rmtheis/tess-two.git
克隆下來后诅炉,還需要ndk編譯黑滴,建議linux下編譯,只需要下載ndk就行了赡突,windows下還要下載安裝sygwin
使用ndk編譯tess-two
分別cd進tess-two
和eyes-two
去編譯項目
cd tess-two
ndk-build
cd eyes-two
ndk-build
簡單的調(diào)用示例
簡單的調(diào)用識別对扶,只需要使用eclipse導入tess-two
中的tess-two
就行了,然后新建工程,引用這個library.
//sd卡路徑
private static final String SD_PATH=Environment.getExternalStorageDirectory();
//字典名
private static final String DICTIONARY="/custom";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TessBaseAPI baseApi = new TessBaseAPI();
//記得要在你的sd卡的tessdata文件夾下放對應的字典文件,例如我這里就放的是custom.traineddata
baseApi.init(SD_PATH, DICTIONARY);
baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_AUTO);
//記得要在對應的文件夾里放上要識別的圖片文件惭缰,比如我這里就在sd卡根目錄放了img.png
baseApi.setImage(new File(SD_PATH+"/img.png"));
final String result= baseApi.getUTF8Text();
//這里浪南,你可以把result的值賦值給你的TextView
baseApi.end();
}
如上,一個簡單的android ocr程序就完成了