我已经使用tess4j从图像中提取文本,但是没有得到正确的结果

时间:2018-12-27 12:04:40

标签: java ocr tess4j

我使用过tess4j,但没有得到正确的结果。 下面是我的代码。

 public static String crackImage(String filePath) {


  BufferedImage img = null;
  try {
      img = ImageIO.read(new File(filePath));
  } catch (IOException e) {
  }
    ITesseract instance = new Tesseract();
    instance.setLanguage("eng");
  //  instance.setPageSegMode((3));
 img=  ImageHelper.convertImageToGrayscale(img);
    instance.setDatapath("C:\\tessdata");

    try {
        String result = instance.doOCR(img);
        return result;
    } catch (TesseractException e) {
        System.err.println(e.getMessage());
        return "Error while reading image";
    }
}

我附上了示例图片。

Smaple Image

我的输出是:

臂m方式:男人

m fl / Vemmnh 1951 mm 8221 11m 3521 | \ | \ | II \ IIIIIIHIIIIIHIIIH

浮渣-万维网

%‘

请提出如何获得正确结果的建议

1 个答案:

答案 0 :(得分:0)

这是最佳做法,

在运行该tess4j命令之前,您需要进行图像处理而更喜欢使用(OpenCV)。 https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality

或者您可以选择Google Ml KIT

https://firebase.google.com/docs/ml-kit/recognize-text