Android OCR仅使用流行的tessercat fork tess two检测数字
我正在为android tess 2使用流行的OCR tessercat fork。我整合了所有的员工和it工作等等 但我只需要检测数字,目前我的代码是:Android OCR仅使用流行的tessercat fork tess two检测数字,android,ocr,tesseract,tess-two,Android,Ocr,Tesseract,Tess Two,我正在为android tess 2使用流行的OCR tessercat fork。我整合了所有的员工和it工作等等 但我只需要检测数字,目前我的代码是: TessBaseAPI baseApi = new TessBaseAPI(); baseApi.init(pathToLngFile, langName); baseApi.setImage(bitmap); String recognizedText = baseApi.getUTF8Text(); baseApi.end(); doSo
TessBaseAPI baseApi = new TessBaseAPI();
baseApi.init(pathToLngFile, langName);
baseApi.setImage(bitmap);
String recognizedText = baseApi.getUTF8Text();
baseApi.end();
doSomething(recognizedText);
从这里开始
我使用的是V3版本,没有代码解决方案,而是一些命令行解决方案——与android项目无关(我想…)。因此,我尝试实现版本baseApi.SetVariable("tessedit_char_whitelist", "0123456789");
我的问题是如何处理init()?我不需要任何语言,但仍然需要初始化&aintinit()方法
编辑:更具体一点
我的最终目标是普通文档(而不是纯Excel表格),它看起来像附件中的图片(标题和3列之间用空格分隔)
我的要求是理解数字:能够分离并确定哪些数字属于哪一行和哪一列。
谢谢,我也想这么做,经过一点研究,我决定捕获所有文本和数字,然后只保留这些数字,这对我很有用:
//This Replaces all except numbers from 0 to 9
recognizedText = recognizedText.replaceAll("[^0-9]+", " ");
现在你可以用这些数字做任何你想做的事情
例如,我使用此代码将所有数字分隔成一个字符串数组,并在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
你可以看到它在工作
希望这有帮助。我做了一点不同。也许它会对某些人有用 因此,您需要首先初始化API
TessBaseAPI baseApi = new TessBaseAPI();
baseApi.init(datapath, language, ocrEngineMode);
然后设置以下变量
baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_SINGLE_LINE);
baseApi.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST, "!?@#$%&*()<>_-+=/:;'\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
baseApi.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST, ".,0123456789");
baseApi.setVariable("classify_bln_numeric_mode", "1");
baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_单线);
baseApi.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST,“!?@$%&*()”、“+=/:”\“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”);
baseApi.setVariable(TessBaseAPI.VAR_CHAR_白名单,”,0123456789“);
baseApi.setVariable(“分类”模式、“1”);
这样,引擎将只检查数字。谢谢,它工作了!但是结果是错误的…识别不如文本好。错误结果的解决方案是什么?