Tess4j在屏幕上找到文本位置

时间:2016-04-22 13:01:16

标签: java

是否可以使用像Tess4j或任何其他ORC这样的库在屏幕上找到文本的矩形位置?

我需要创建一个可以找到按钮并单击它的应用程序。

我无法在Tess4j文档下找到任何内容。

1 个答案:

答案 0 :(得分:0)

首先,您需要找到图片中的所有单词。

instance.getWords(bufferedImage, ITessAPI.TessPageIteratorLevel.RIL_TEXTLINE)

我正在使用TessPageIteratorLevel.RIL_TEXTLINE来获取每一行的字符串。您可以使用TessPageIteratorLevel.RIL_WORD来获取标记化的字符串。

然后使用word.getBoundingBox();获取单词的边界矩形。

public class DemoTess {
    public static void main(String[] args) throws IOException {
        ITesseract instance = new Tesseract();
        instance.setLanguage("eng");
        long start = System.currentTimeMillis();
        BufferedImage bufferedImage = ImageIO.read(DemoTess.class.getResourceAsStream("/cv/menu_v1.png"));
        for (Word word : instance.getWords(bufferedImage, ITessAPI.TessPageIteratorLevel.RIL_TEXTLINE)) {
            if (word.getText().contains("Button Text")) {
                Rectangle boundingBox = word.getBoundingBox();
                System.out.println("boundingBox = " + boundingBox);
                break;
            }
        }
        System.out.println("time = " + (System.currentTimeMillis() - start));
    }
}