Java 集成 Umi-OCR 实现本地图片文字提取
背景与需求
当需要从大量截图中提取数据时,手动输入不仅效率低下,还容易出错。市面上的 OCR 工具要么需要付费订阅,要么配置复杂。Umi-OCR 是一款开源免费的离线 OCR 工具,能快速将图片中的文字转化为可编辑文本。本文将介绍如何用 Java 代码实现图片文字提取。
快速体验
在深入 Java 集成前,可以先用简单的命令行操作体验 Umi-OCR 功能。
操作要点:
- 下载 Umi-OCR 压缩包并解压
- 打开命令提示符,进入解压目录
- 输入以下命令体验截图 OCR:
Umi-OCR.exe --screenshot
- 用鼠标框选任意含有文字的区域
注意事项:
- 确保解压路径不含中文和空格
- 首次运行会自动初始化 OCR 引擎
- 截图后结果会自动复制到剪贴板
试试用这个命令识别桌面上的图片:
Umi-OCR.exe --path "C:/Desktop/test.png" --output result.txt
打开生成的 result.txt 文件,你会发现图片中的文字已经被完美提取出来了。
Umi-OCR 优势
Umi-OCR 支持批量处理和二维码识别,有三个显著优势让开发者青睐:
1. 零依赖离线运行:不像其他 OCR 工具需要联网调用 API,Umi-OCR 所有识别都在本地完成,数据隐私有保障,识别速度也更快。
2. 命令行与 HTTP 双接口:提供两种调用方式,命令行适合简单场景,HTTP 接口适合复杂集成。
3. 丰富的输出格式:支持直接输出文本、JSON 或保存到文件,满足不同场景需求。
Java 调用方式
命令行调用(适合简单场景)
Java 调用外部程序可以使用 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 默认编码)

