JAVA OCR в текстовый файл - PullRequest
       6

JAVA OCR в текстовый файл

0 голосов
/ 30 октября 2018

Добрый день люди,

С помощью исследования я сделал приведенный ниже код для чтения текстов изображений:

package pckLeitor;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

public class Tess4jOCRv2 {

    public static void main(String[] args) throws TesseractException {

        File repository = new File("C:\\Users\\RAFSOUZA\\Desktop\\OCRTest");

        try
        {
            for (File file : repository.listFiles()) {

                String dtNow = new SimpleDateFormat("ddMMyyyy_HHmmss").format(Calendar.getInstance().getTime());

                Tesseract tesseract = new Tesseract();
                tesseract.setDatapath("C:\\Users\\RAFSOUZA\\Desktop\\Rafa3lOneiL\\BibliotecasExternasJAVA\\TesseractORC\\");
                String fullText = tesseract.doOCR(file);

                String fileExit = "C:\\Users\\RAFSOUZA\\Desktop\\OCRTest" + dtNow + ".txt";

                FileWriter fstream = new FileWriter(fileExit);
                BufferedWriter out = new BufferedWriter(fstream);

                out.write(fullText);
                out.newLine();
                out.close();
            }
        }
        catch (Exception e)
        {
            System.out.println("Ocorreu o seguinte erro" + e);
        }

    }

}

Я хотел бы улучшить этот код для:

1) Читать все изображения в папке

2) Создать текстовый файл с данными, считанными с каждого изображения

Можете ли вы дать мне направление?

1 Ответ

0 голосов
/ 31 октября 2018

Хорошо, значит, вы уже получили код для чтения изображения и вывода всего текста, верно?

Давайте попробуем обернуть это циклом или чем-то, используя File#listFiles(), и все будет в порядке! Что-то вроде этого должно работать, обратите внимание, я написал это в блокноте, и это не было проверено!

import java.io.File;

public class Tess4jOCR {
    public static void main(String[] args) throws TesseractException {
        File repository = new File("C:\\Users\\RAFSOUZA\\Desktop\\OCRTest");

        try {
            for (File file : repository.listFiles()) {
                String dtNow = new SimpleDateFormat("ddMMyyyy_HHmmss").format(Calendar.getInstance().getTime());

                Tesseract tesseract = new Tesseract();
                tesseract.setDatapath("C:\\Users\\RAFSOUZA\\Desktop\\Rafa3lOneiL\\BibliotecasExternasJAVA\\TesseractORC\\");
                String fullText = tesseract.doOCR(file);

                //String file = "O:\\Operações\\MIS\\Csa_OCR" + dtNow + ".txt";
                String file = "C:\\RegistroRS" + dtNow + ".txt";

                FileWriter fstream = new FileWriter(file);
                BufferedWriter out = new BufferedWriter(fstream);
                //System.out.println(fullText);

                out.write(fullText);
                out.newLine();
                out.close();
            }
        } catch (Exception e) {
            System.out.println("Ocorreu o seguinte erro" + e);
        }

    }

}

Просто поместите все изображения, которые вы хотите обработать, в C:\\Users\\RAFSOUZA\\Desktop\\OCRTest (или в любой каталог, на который установлена ​​переменная repository, и запустите его, и он должен вывести его на C:\\RegistroRS-<timestamp>.txt

Обратите внимание, что вы можете добавить дополнительную логику для проверки имен файлов или, возможно, вывести текстовый файл с именем, связанным с исходным вводом, чтобы не повторять обработку, если вы запускаете код более одного раза и можете легко сказать, какой выход пришел с какого входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...