3

だから私はいくつかのシンボルをスキャンするためにAndroidプロジェクトにtesseract ocr(具体的にはtess-two)を使用しようとしています。

すべて正常に動作しますが、認識された文字列が null として返されることがあります。私が見つけた解決策の 1 つは、変数save_blob_choicesを true に設定して、認識のために tesseract に代替を保存させることでした。

しかし、それが本当にそうすべきかどうかはわかりません。代替案はどこに保存されますか? それらにアクセスするにはどうすればよいですか?

もちろん、この変数を使用する以外に解決策があれば教えてください。

これが私のコードです:

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();

また、追加の質問として、base.setDebug(true)動作するはずですか? 何もしていないように見えるからです。

4

1 に答える 1