如何使用tess4j提取图像中的文本坐标



我试图找出如何在tess4j执行OCR后获得文本图像中的坐标和单词rect。我还是个初学者,谁能给我解释一下吗?感谢。

我自己对tess4j相当陌生,我不想不同意@nguyenq,但以下是我的做法

String imageUrl = "...";
File imageFile = new File(imageUrl);
Image image = ImageIO.read(imageFile);
BufferedImage bi = toBufferedImage(image);
ITesseract instance = new Tesseract();
for(Word word : instance.getWords(bi, ITessAPI.TessPageIteratorLevel.RIL_TEXTLINE)) {
  Rectangle rect = word.getBoundingBox();
  System.out.println(rect.getMinX()+","+rect.getMaxX()+","+rect.getMinY()+","+rect.getMaxY()
                    +": "+word.getText());
}

这是toBufferedImage方法

public static BufferedImage toBufferedImage(Image img)
{
  if (img instanceof BufferedImage)
  {
      return (BufferedImage) img;
  }
  // Create a buffered image with transparency
  BufferedImage bimage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
  // Draw the image on to the buffered image
  Graphics2D bGr = bimage.createGraphics();
  bGr.drawImage(img, 0, 0, null);
  bGr.dispose();
  // Return the buffered image
  return bimage;
}
信贷

编辑我应该注意,这是使用tess4j v3.3.1。这个新的便利API一定是@nguyenq在最初的问题发布后添加的

Tess4J的单元测试包括为已识别的单词获取边界框的示例。代码类似于Tess4J:如何使用ResultIterator

最新更新