Java 实现图片OCR文字识别功能
前言:
由于网上很多算法, 以及语言库无法做到精准识别, 所以综合条件下 使用了一款 space OCR API 的产品进行使用, 每个月有25000条的 使用额度, 日常使用或开发绰绰有余
一. 注册 API 秘钥
1. 进入网址点击下面的注册链接输入自己的邮箱以及开发用途就会收到一个秘钥
2. 注册好的API如下
二. API解析
1. 上传方式选择
通过阅读API 文档我们可以得知, 发送图片解析的方式有三种:
- ) URL 上传, 前提是需要将图片放到公网可以访问到的位置
- ) File 上传, 通过Post 请求将图片放到from-data中发送
- ) base64编码上传 [推荐~]
2. 识别引擎选择
OCR 引擎 1 的特点:
- - 支持更多语言(包括中文、日文和韩文等亚洲语言)
- - 快点
- - 支持更大的图像
- - 多页 TIFF 扫描支持
- - 参数:OCREngine=1
OCR 引擎 2 的特点:
- -仅限西方拉丁字符语言(英语、德语、法语…)
- - 语言自动检测。选择哪种 OCR 语言并不重要,只要它使用拉丁字符即可
- - 通常在单个数字 OCR、单个字符 OCR 和字母数字 OCR 方面表现更好(例如SUDOKO、 点阵 OCR、 MRZ OCR、 单个数字 OCR、OCR后 缺少第一个字母,…)
- - 通常更擅长特殊字符 OCR,如@±…
- - 通常使用旋转文本效果更好(论坛:检测垃圾图片)
- - 图像大小限制为 5000 像素宽度和 5000 像素高度
- - 参数:OCREngine=2
3. 传参选择
在请求过程中只有两个参数是必填的, 分别是 apikey和 三种上传方式的一种
- ) language 在识别中文时可以选择 chs(简体), cht(繁体) 两种, 不识别中文可以选择引擎二 并且不用填写该参数
- ) filetype 填写该参数可以有效的增加识别精度
- ) scale 如果设置为 true,api 会进行一些内部升级。这可以显着改善 OCR 结果,尤其是对于低分辨率 PDF 扫描。 API 默认使用 scale=false
4. 请求参数解析
apikey |
API 密钥 | |
---|---|---|
url 或file 或base64Image |
url :远程图像文件的 URL(确保它具有正确的内容类型) file :具有文件名的多部分编码图像文件 base64Image :图像或 PDF 作为Base64 编码字符串 |
您可以使用三种方法上传输入图像或 PDF。对于大于 10 MB 的文件,我们建议使用 URL 方法以提高上传速度。 |
language |
[可选] 阿拉伯语=ara 保加利亚语=bul 中文(简体)=chs 中文(繁体)=cht 克罗地亚语=hrv 捷克语=cze 丹麦语=dan 荷兰语=dut 英语=eng 芬兰语=fin 法语=fre 德语=ger 希腊语=gre 匈牙利语=hun 韩语=kor 意大利语=ita 日语=jpn 波兰语=pol 葡萄牙语=por 俄语=rus 斯洛文尼亚语=slv 西班牙语=spa 瑞典语=swe 土耳其语 = tur |
用于 OCR 的语言。如果未指定语言,eng 则默认使用英语。 重要提示:语言代码总是3-letters (不是 2)。所以它是“eng”而不是“en”。 Engine2具有自动西文检测功能,因此该值将被忽略。 |
isOverlayRequired |
[可选] 布尔值 | 默认值 =False 如果为 true,则返回每个单词的边界框坐标。如果为 false,则 OCR 处理的文本仅作为文本块返回(这会使 JSON 响应变小)。例如,覆盖数据可用于在图像上显示文本。 |
filetype |
[可选] 字符串值:PDF、GIF、PNG、JPG、TIF、BMP | 覆盖基于content-type的自动文件类型检测。支持的图像文件格式有 png、jpg (jpeg)、gif、tif (tiff) 和 bmp。对于文档 ocr,api 支持 Adobe PDF 格式。支持多页 TIFF 文件。 |
d |