所以我一直在尝试使用 tesseract ocr,(特别是 tess-two)来扫描一些符号。
一切正常,但有时识别的字符串返回为空。我发现的解决方案之一是将变量设置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)
应该工作吗?因为它似乎什么也没做。