我正在使用流行的OCR tessercat fork for android tess-two https://github.com/rmtheis/tess-two。我整合了所有员工,它的工作原理......
但我只需要检测数字,我现在的代码是:
TessBaseAPI baseApi = new TessBaseAPI();
baseApi.init(pathToLngFile, langName);
baseApi.setImage(bitmap);
String recognizedText = baseApi.getUTF8Text();
baseApi.end();
doSomething(recognizedText);
从这里https://code.google.com/p/tesseract-ocr/wiki/FAQ#How_do_I_recognize_only_digits?
我正在使用V3版本,并且没有代码解决方案而是一些命令行解决方案 - 与android项目无关(我认为......)。所以我尝试实现版本的解决方案< V3并添加以下行:
baseApi.SetVariable("tessedit_char_whitelist", "0123456789");
我的问题是如何处理init()?我不需要任何语言,但我仍需要初始化和aint init()方法......
编辑:更具体
我的最终目标是普通文档(不是纯Excel表格),看起来像附图(标题和3列用空格分隔)。
我的要求是在数字中有意义:能够分离和确定哪些数字属于哪个行和列。
谢谢,
答案 0 :(得分:6)
我做了一点点不同。也许它会对某人有用。
所以你需要首先初始化API。
SELECT import_lo('hfj_resource', '/home/gpadmin/export/res_lo');
然后设置以下变量
TessBaseAPI baseApi = new TessBaseAPI();
baseApi.init(datapath, language, ocrEngineMode);
这样引擎只会检查数字。
答案 1 :(得分:3)
我想做同样的事情,经过一些研究,我决定捕捉所有,文本和数字,然后保留数字,这对我有用:
//This Replaces all except numbers from 0 to 9
recognizedText = recognizedText.replaceAll("[^0-9]+", " ");
现在你可以用数字做任何你想做的事。
例如,我使用此代码将所有数字分成String数组,并在TextView上显示它们
String[] justnumbers = recognizedText.trim().split(" "); //Deletes blank spaces and splits the numbers
YourTextView.setText(Arrays.toString(justnumbers).replaceAll("\\[|\\]", "")) //sets the numbers into the TextView and deletes the "[]" from the String Array
您可以看到它正常工作here。
希望这有帮助。