简体   繁体   中英

Tesseract OCR using Java

I have tried to implement the tesseract ocr using Java. But I want the output of converted image to be stored in separate text file. But I am getting empty test.txt file.

Here is the code:

    import java.io.FileOutputStream;
    import org.bytedeco.javacpp.*;
    import org.junit.Test;
    import static org.bytedeco.javacpp.lept.*;
    import static org.bytedeco.javacpp.tesseract.*;
    import static org.junit.Assert.assertTrue;
    import java.io.File;


    public class BasicTesseractExampleTest {
    @Test
    public void givenTessBaseApi_whenImageOcrd_thenTextDisplayed() throws Exception {
        BytePointer outText;

        TessBaseAPI api = new TessBaseAPI();
        // Initialize tesseract-ocr with English, without specifying tessdata path
        if (api.Init(".", "ENG") != 0) {
            System.err.println("Could not initialize tesseract.");
            System.exit(1);
        }

        // Open input image with leptonica library 
        PIX image = pixRead("IMG_0012 (1).jpg");
        api.SetImage(image);

        // Get OCR result
        outText = api.GetUTF8Text();
        String string = outText.getString();
        assertTrue(!string.isEmpty());
        System.out.println("OCR output:\n" + string);
        FileOutputStream file = new FileOutputStream("test.txt");
        TeePrintStream tee = new TeePrintStream(file, System.out);
        System.setOut(tee);

        // Destroy used object and release memory
        api.End();
        outText.deallocate();
        pixDestroy(image);

    }
}

添加返回类型字符串,并在主要方法中写入System.out.println(tee);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM