3

So I've been trying to use tesseract ocr, (specifically tess-two) for an android project to scan some symbols.

Everything works fine but sometimes the recognized String is returned as null. One of the solutions I found was to set the variable save_blob_choices to true in order to have tesseract save alternatives for recognition.

But I don't know if it indeed is supposed to do that. Where does it save the alternatives? How do I access them?

Of course if you have any other solution apart from using this variable, please tell me.

Here is my code:

TessBaseAPI baseApi = new TessBaseAPI();
baseApi.setDebug(true);
baseApi.init(MainActivity.DATA_PATH, MainActivity.lang);
baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_SINGLE_CHAR);


baseApi.setVariable("tessedit_char_whitelist","abcdefghijklmnopqrst");
baseApi.setVariable("save_blob_choices", "T");

baseApi.setImage(mainBitmap);

publishProgress(80);


mainBitmap.recycle();
mainBitmap = null;

// Iterate through the results.
ResultIterator iterator = baseApi.getResultIterator();
String lastUTF8Text;
float lastConfidence;


iterator.begin();
do {
    lastUTF8Text = iterator.getUTF8Text(TessBaseAPI.PageIteratorLevel.RIL_SYMBOL);
    lastConfidence = iterator.confidence(TessBaseAPI.PageIteratorLevel.RIL_SYMBOL);

    Log.i("string, intConfidence",lastUTF8Text+", "+lastConfidence);
} while (iterator.next(TessBaseAPI.PageIteratorLevel.RIL_SYMBOL));


baseApi.end();

Also as an extra question, is base.setDebug(true) supposed to work? Because it doesn't seem to do anything.

h7r
  • 4,944
  • 2
  • 28
  • 31
Samzerge
  • 96
  • 1
  • 8

0 Answers0