Java 集成 Umi-OCR 实现本地图片文字提取
当需要从大量截图中提取数据时,手动输入效率低下且易出错。市面上的 OCR 工具要么付费,要么配置复杂。Umi-OCR 是一款免费、开源、可批量处理的离线 OCR 软件,适用于 Windows 系统,支持截图 OCR、批量 OCR、二维码识别等功能。本文将介绍如何用 Java 调用 Umi-OCR 进行图片文字提取。
快速体验 Umi-OCR
无需编程,通过命令行即可体验 Umi-OCR 功能。
- 下载 Umi-OCR 压缩包并解压。
- 打开命令提示符,进入解压目录。
- 输入以下命令体验截图 OCR:
Umi-OCR.exe --screenshot
- 用鼠标框选任意含有文字的区域。
注意事项:
- 确保解压路径不含中文和空格。
- 首次运行会自动初始化 OCR 引擎(约 10 秒)。
- 截图后结果会自动复制到剪贴板。
试试用这个命令识别桌面上的图片:
Umi-OCR.exe --path "C:/Desktop/test.png" --output result.txt
打开生成的 result.txt 文件,图片中的文字已被提取。
Umi-OCR 核心优势
- 零依赖离线运行:所有识别都在本地完成,数据隐私有保障,识别速度更快。
- 命令行与 HTTP 双接口:提供两种调用方式,命令行适合简单场景,HTTP 接口适合复杂集成。
- 丰富的输出格式:支持直接输出文本、JSON 或保存到文件。
Java 调用 Umi-OCR 的方法
方法一:命令行调用(适合简单场景)
使用 ProcessBuilder 调用外部程序。
ProcessBuilder pb = new ProcessBuilder("Umi-OCR.exe", "--path", "test.png");
Process process = pb.start();
String result = new String(process.getInputStream().readAllBytes(), "GBK");
注意:
- 确保 Umi-OCR.exe 路径正确。
- 使用 GBK 编码读取输出(Umi-OCR 默认编码)。
- 给命令参数添加
--output result.txt可保存结果到文件。
方法二:HTTP 接口调用(适合复杂集成)
Umi-OCR 内置 HTTP 服务,Java 程序通过发送请求调用。启动服务后,在全局设置中确认 HTTP 服务已开启。

