Tesseract OCR 无法正确分割线

问题描述 投票:0回答:1

对于我的应用程序,我需要使用 OCR 从发票中提取文本。为了实现这一目标,我将需要扫描的发票裁剪到各个列,并将这些裁剪后的图像放入超正方体中。对于大多数列来说,这都可以完美地工作,但有一些列不会分割行,并且会在同一字符串中输出所有内容。

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

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

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;
        }

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

它只返回“14126”。

我希望任何人都能够指出我解决这个问题的方法。 非常感谢!

c# ocr tesseract
1个回答
1
投票

查看 Tesseract 的 GitHub wiki github.com/tesseract-ocr/tesseract/wiki/ControlParams

您可以使用

PageSegmentationMode
PageSegMode.SingleBlock
来完成您正在寻找的任务。

© www.soinside.com 2019 - 2024. All rights reserved.