Tesseract OCR 不能正确分割线

Tesseract OCR not splitting lines correctly

对于我的应用程序,我需要使用 OCR 从发票中提取文本。为此,我将需要扫描的发票裁剪成单独的列,并将这些裁剪后的图像放入 tesseract。对于大多数列来说,这非常有效,但有一些列不会拆分行,而是在同一字符串中输出所有内容。

我目前正在尝试的是使用 string.split() 方法,使用“\n”和“\r”作为参数。

下面的代码显示了我是如何尝试将输出拆分为字符串数组的:

public string[] ProcessFile(Image InputImage)
        {
            Bitmap WorkImage = new Bitmap(InputImage);
            string[] Output;

            Tesseract.TesseractEngine Engine = new TesseractEngine("./tessdata", "eng", EngineMode.TesseractAndCube);
            Page RawOutput = Engine.Process(WorkImage);
            string ConvertedOutput = RawOutput.GetText();
            Output = ConvertedOutput.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
            Engine.Dispose();
            return Output;
        }

对于包含如下值的列 "product 1" "product 2" "product 3" ETC 这工作得很好,但是当列包含单独的数字时,如下所示: “1” “4” “12” “6”

只有returns“14126”。

我希望任何人都能够指出我对此的解决方案。 非常感谢!

你读过 Tesseract 的 GitHub wiki 吗?这有什么帮助吗:github.com/tesseract-ocr/tesseract/wiki/ControlParams?

您可以使用 PageSegmentationModePageSegMode.SingleBlock 来完成您想要的。