java - Tess4j 查找屏幕上的文本位置

标签 java

是否可以使用 Tess4j 或任何其他 ORC 等库来查找屏幕上文本的矩形位置?

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

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

最佳答案

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

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));
    }
}

关于java - Tess4j 查找屏幕上的文本位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36794588/

相关文章:

java - N1QL 二级索引不适用于参数化 IN 子句

java - 无法在 Release模式下启动 Activity(使用 proguard-android-optimize 配置)

java - 使用java生成pdf文件

java - 当我编写函数时,如何阻止 Visual Studio Code 自动填充参数名称?

Java、继承和实例方法。为什么我的方法不能继承?

java - 为什么 print 方法从数组索引中打印空数据?

java - 如何使用zip4j和outputstream压缩文件夹和子文件夹

java - GemFire 9 替换 GemfireUtilLauncher

java - 测试中找不到Textview

java - 抽象枚举的 sun.reflect.Reflection 处理中可能存在错误?