だから私はいくつかのシンボルをスキャンするために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)
動作するはずですか? 何もしていないように見えるからです。