【问题标题】:Tess4j tesseract - How can you differentiate between columns or rows in a table?Tess4j tesseract - 你如何区分表中的列或行?
【发布时间】:2020-12-14 14:03:09
【问题描述】:

我正在使用 Java 中的 tess4j tesseract。它运作良好,它允许我做我需要做的事情。

但是我遇到了一个没有指导或帮助就无法解决的问题。

让我们说,我有以下图像:

这会为我提供以下输出:

第一栏第二栏第三栏

第 1 行第 1 行第 3 列

第 2 行第 1 行第 2 行第 2 行第 2 列第 3 列

这是我的代码

    String readFile(String inputFilePath){
    Tesseract tesseract = new Tesseract();
    tesseract.setDatapath(path);
    tesseract.setLanguage("eng");
    tesseract.setTessVariable("user_defined_dpi", "300");

    String string = null;
    try {
        string = tesseract.doOCR(new File(inputFilePath));
    } catch (TesseractException e) {
        e.printStackTrace();
    }
    return string;
}

有没有一种方法可以让我获得模仿图像中的内容的结果?所以我可以区分这些列。

【问题讨论】:

  • 看来您必须计算列标题之间的空格。然后将该逻辑应用于每个表格行。
  • 保留空格并计算它们:tesseract.setTessVariable("preserve_interword_spaces", "1");
  • @nguyenq 太棒了。发布为答案。

标签: java tesseract tess4j


【解决方案1】:

您可以保留空格,然后计算它们:

tesseract.setTessVariable("preserve_interword_spaces", "1");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多