JAVA OCR到txt文件

JAVA OCR到txt文件,java,ocr,Java,Ocr,大家下午好 在研究的帮助下,我完成了以下代码来阅读图像文本: 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.sourc

大家下午好

在研究的帮助下,我完成了以下代码来阅读图像文本:

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) 生成一个txt文件,其中包含从每个图像读取的数据


你能给我一个方向吗?

好的,那么你已经获得了读取图像和输出所有文本的代码,对吗

让我们试着用一个循环或其他东西来包装它,这样我们就可以了! 类似的东西应该可以用,注意我在记事本上写的,它还没有经过测试

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:\\registors-.txt


请注意,您可能需要添加额外的逻辑来检查文件名,或者可能需要以与原始输入相关的名称输出txt文件,这样,如果您多次运行代码,您就不会重新处理这些内容,并且您可以很容易地分辨出哪个输出来自哪个输入。

当我发送变量fullTex的内容时,代码执行正常使用system.out.printLn()时,我注意到读取工作正常,但它不会生成任何txt文件,并且Catch块中没有任何内容。我在中启动了新代码,可能是因为线程的代码没有在填充文本文件后专门编写文件?如果没有看到您的代码,很难知道。