How can I use Tesseract in Android?

Pallavi picture Pallavi · Oct 10, 2011 · Viewed 39.6k times · Source

I have searched on the net for a couple of hours. I got many answers saying we need to use NDK, etc. for "Tesseract" for WINDOWS.

But I didn't get any step-by-step/proper explanation of what should be done when NDK is installed. How to get the .so files? I have finished installing NDK and Cygwin. To check if it's done properly, I entered make -v and it gave the expected output.

Can anyone who has used "Tesseract" tell me how they have done it? (I have downloaded "Mezzofanti", but there I didn't find any of the "Tesseract" files.)

Answer

Yuliia Ashomok picture Yuliia Ashomok · Apr 29, 2016

You need to use tess-two project for working with Tesseract on Android.
The tess-two contains tools for compiling the Tesseract and Leptonica libraries for use on the Android platform. It provides a Java API for accessing natively-compiled Tesseract and Leptonica APIs.

Adding tess-two to your project:

add to build.gradle:

dependencies {
    compile 'com.rmtheis:tess-two:5.4.1'
}

Using Tesseract:

import com.googlecode.tesseract.android.TessBaseAPI;

private String extractText(Bitmap bitmap) throws Exception{
    TessBaseAPI tessBaseApi = new TessBaseAPI();
    tessBaseApi.init(DATA_PATH, "eng");
    tessBaseApi.setImage(bitmap);
    String extractedText = tessBaseApi.getUTF8Text();
    tessBaseApi.end();
    return extractedText;
}

You can looking on my simple one-class example of using Tesseract for Android. It contains only 200 lines of Java code.