0

我一直在努力使tess-twoOCR 项目正常工作,当我最终做到时,它确实能够识别清晰的文本并且那里有多行。

重点是当用户拍照时我需要使用 OCR 来提取信用卡号。

以下是信用卡号的示例:

在此处输入图像描述

这只是我使用许多图片的示例。例如,对于这张图片,我得到了以下文字:

1238 5578 8875 5877
1238 5578 8875 5877
1238 5578 8875 5877

这是我用于此的代码:

TessBaseAPI baseApi = new TessBaseAPI();
baseApi.init("/mnt/sdcard/tesseract-ocr", "eng");
baseApi.setImage(bm);
baseApi.setPageSegMode(6);

String whiteList = "/1234567890";
baseApi.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST, whiteList);

String recognizedText = baseApi.getUTF8Text();
baseApi.end();

任何帮助将非常感激。

谢谢 !

4

2 回答 2

1

也许图像的一些预处理步骤会使 tesseract 具有更好的性能。我可以建议你写一篇完整的论文(http: //wbieniec.kis​​.p.lodz.pl/research/files/07_memstech_ocr.pdf )如果你有时间,如果没有,尝试使用图像的对比度。

这里还有一些适合您的问题的想法: http ://www.ocr-it.com/user-scenario-process-digital-camera-pictures-and-ocr-to-extract-specific-numbers

于 2015-04-06T16:49:05.743 回答
0

示例图像已经适合 OCR,但据我所知,您使用的是 tesseract 的内置“eng.traineddata”模型,它不适合(在准确性/性能方面)用于信用卡扫描。(信用卡使用字体“OCR-A”)。因此,您需要找到预训练的模型并在初始化 tessApi 时替换它,或者自己从 stratch 训练它。

要使用自定义字体训练 tesseract 模型,请参阅 Yash Modi 在 此处的回答

于 2021-03-10T21:24:51.780 回答