Android OCR仅使用流行的tessercat fork tess-two检测数字

mic*_*ael 5 ocr android tesseract tess-two

我正在使用流行的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); 
Run Code Online (Sandbox Code Playgroud)

从这里https://code.google.com/p/tesseract-ocr/wiki/FAQ#How_do_I_recognize_only_digits

我使用的是版本V3,并没有代码解决方案而是一些命令行解决方案 - 与android项目无关(我认为......).所以我尝试为版本<V3实现解决方案并添加以下行:

baseApi.SetVariable("tessedit_char_whitelist", "0123456789");
Run Code Online (Sandbox Code Playgroud)

我的问题是如何处理init()?我不需要任何语言,但仍需要init&aint init()方法...

编辑:更具体

我的最终目标是普通文档(不是纯Excel工作表),看起来像附图(标题和3列用空格分隔).

我的要求是在数字中有意义:能够分离和确定哪些数字属于哪个行和列. 在此输入图像描述

谢谢,

Ble*_*ehi 6

我做了一点点不同.也许它会对某些人有用.

所以你需要先初始化API.

TessBaseAPI baseApi = new TessBaseAPI();
baseApi.init(datapath, language, ocrEngineMode);
Run Code Online (Sandbox Code Playgroud)

然后设置以下变量

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");
Run Code Online (Sandbox Code Playgroud)

通过这种方式,引擎将仅检查数字.


小智 3

我想做同样的事情,经过一番研究后,我决定捕获所有文本和数字,然后只保留数字,这对我有用:

//This Replaces all except numbers from 0 to 9    
recognizedText = recognizedText.replaceAll("[^0-9]+", " "); 
Run Code Online (Sandbox Code Playgroud)

现在你可以用这些数字做任何你想做的事。

例如,我使用此代码将所有数字分成一个字符串数组,并将它们显示在 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
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到它的工作原理。

希望这可以帮助。