Tess4j тессеракт — Как вы можете различать столбцы или строки в таблице?

#java #tesseract #tess4j

#java #тессеракт #tess4j

Вопрос:

Я немного работаю с tess4j tesseract на Java. Это работает хорошо и позволяет мне делать то, что мне нужно.

Но я столкнулся с проблемой, которую я не могу решить без руководства или помощи.

Допустим, у меня есть следующее изображение:

введите описание изображения здесь

Затем это дает мне следующий вывод:

Столбец 1 столбец 2 Столбец3

Строка 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;
}
 

Есть ли способ, которым я могу добиться результата, который имитирует то, что находится на изображении? Так что я могу различать столбцы.

Комментарии:

1. похоже, вам придется считать пробелы между заголовками столбцов. Затем примените эту логику к каждой строке таблицы.

2. Сохраните пробелы и подсчитайте их: tesseract.setTessVariable("preserve_interword_spaces", "1");

3. @nguyenq Потрясающе. Отправьте сообщение в качестве ответа.

Ответ №1:

Вы можете сохранить пробелы, а затем посчитать их:

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