如何用Java将扫描文档转换为文本

如何用Java将扫描文档转换为文本

时间:2021-1-31 作者:admin

无论您是希望最小化存储空间,在线显示文档,还是电子编辑文档,光学字符识别(OCR)都是数字化印刷文本的一种很好的方法。这对企业尤其有帮助,因为它是各种文件(如发票、银行对账单、邮件和电子收据)的数据输入形式。

OCR技术的早期版本需要对每个字符的图像进行培训,第一批模型实际上是在1914年创建的,目的是将扫描的文本转换为电文或视障人士的音频代码。正如您可能已经猜到的,OCR的当前版本自20世纪以来已经取得了很大的进步,并且能够在多种文件格式的范围内对大多数字体实现高度的数字识别精度。

本教程特别关注将文档扫描图像转换为文本的OCRAPI。重要的是要澄清,这个特定的API只打算在扫描的文档上运行;如果您想利用OCR技术将照片转换为文本,那么一定要使用我们的照片到文本函数,因为它的目的是在转换之前消除图像的倾斜。

为了启动我们的过程,我们首先需要通过添加一个引用到pu.xml中的存储库来安装带有Maven的SDK包:

爪哇

1
<repositories>
2
<repository>
3
<id>jitpack.io</id>
4
<url>https://jitpack.io</url>
5
</repository>
6
</repositories>

接下来,我们将添加对依赖项的引用:

爪哇

1
<repositories>
2
<repository>
3
<id>jitpack.io</id>
4
<url>https://jitpack.io</url>
5
</repository>
6
</repositories>

安装完成后,我们就可以将导入添加到文件的顶部,并使用以下代码将图像调用为Text函数:

爪哇

1
// Import classes:
2
//import com.cloudmersive.client.invoker.ApiClient;
3
//import com.cloudmersive.client.invoker.ApiException;
4
//import com.cloudmersive.client.invoker.Configuration;
5
//import com.cloudmersive.client.invoker.auth.*;
6
//import com.cloudmersive.client.ImageOcrApi;
7
8
ApiClient defaultClient = Configuration.getDefaultApiClient();
9
10
// Configure API key authorization: Apikey
11
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication(“Apikey”);
12
Apikey.setApiKey(“YOUR API KEY”);
13
// Uncomment the following line to set a prefix for the API key, e.g. “Token” (defaults to null)
14
//Apikey.setApiKeyPrefix(“Token”);
15
16
ImageOcrApi apiInstance = new ImageOcrApi();
17
File imageFile = new File(“/path/to/inputfile”); // File | Image file to perform OCR on. Common file formats such as PNG, JPEG are supported.
18
String recognitionMode = “recognitionMode_example”; // String | Optional; possible values are ‘Basic’ which provides basic recognition and is not resillient to page rotation, skew or low quality images uses 1-2 API calls; ‘Normal’ which provides highly fault tolerant OCR recognition uses 26-30 API calls; and ‘Advanced’ which provides the highest quality and most fault-tolerant recognition uses 28-30 API calls. Default recognition mode is ‘Advanced’
19
String language = “language_example”; // String | Optional, language of the input document, default is English (ENG). Possible values are ENG (English), ARA (Arabic), ZHO (Chinese – Simplified), ZHO-HANT (Chinese – Traditional), ASM (Assamese), AFR (Afrikaans), AMH (Amharic), AZE (Azerbaijani), AZE-CYRL (Azerbaijani – Cyrillic), BEL (Belarusian), BEN (Bengali), BOD (Tibetan), BOS (Bosnian), BUL (Bulgarian), CAT (Catalan; Valencian), CEB (Cebuano), CES (Czech), CHR (Cherokee), CYM (Welsh), DAN (Danish), DEU (German), DZO (Dzongkha), ELL (Greek), ENM (Archaic/Middle English), EPO (Esperanto), EST (Estonian), EUS (Basque), FAS (Persian), FIN (Finnish), FRA (French), FRK (Frankish), FRM (Middle-French), GLE (Irish), GLG (Galician), GRC (Ancient Greek), HAT (Hatian), HEB (Hebrew), HIN (Hindi), HRV (Croatian), HUN (Hungarian), IKU (Inuktitut), IND (Indonesian), ISL (Icelandic), ITA (Italian), ITA-OLD (Old – Italian), JAV (Javanese), JPN (Japanese), KAN (Kannada), KAT (Georgian), KAT-OLD (Old-Georgian), KAZ (Kazakh), KHM (Central Khmer), KIR (Kirghiz), KOR (Korean), KUR (Kurdish), LAO (Lao), LAT (Latin), LAV (Latvian), LIT (Lithuanian), MAL (Malayalam), MAR (Marathi), MKD (Macedonian), MLT (Maltese), MSA (Malay), MYA (Burmese), NEP (Nepali), NLD (Dutch), NOR (Norwegian), ORI (Oriya), PAN (Panjabi), POL (Polish), POR (Portuguese), PUS (Pushto), RON (Romanian), RUS (Russian), SAN (Sanskrit), SIN (Sinhala), SLK (Slovak), SLV (Slovenian), SPA (Spanish), SPA-OLD (Old Spanish), SQI (Albanian), SRP (Serbian), SRP-LAT (Latin Serbian), SWA (Swahili), SWE (Swedish), SYR (Syriac), TAM (Tamil), TEL (Telugu), TGK (Tajik), TGL (Tagalog), THA (Thai), TIR (Tigrinya), TUR (Turkish), UIG (Uighur), UKR (Ukrainian), URD (Urdu), UZB (Uzbek), UZB-CYR (Cyrillic Uzbek), VIE (Vietnamese), YID (Yiddish)
20
String preprocessing = “preprocessing_example”; // String | Optional, preprocessing mode, default is ‘Auto’. Possible values are None (no preprocessing of the image), and Auto (automatic image enhancement of the image before OCR is applied; this is recommended).
21
try {
22
ImageToTextResponse result = apiInstance.imageOcrPost(imageFile, recognitionMode, language, preprocessing);
23
System.out.println(result);
24
} catch (ApiException e) {
25
System.err.println(“Exception when calling ImageOcrApi#imageOcrPost”);
26
e.printStackTrace();
27
}

这将快速有效地返回您上传的图像的文本版本。为了优化和确保API的准确性,您需要验证是否包括以下参数:

Api键-这可以通过云网站如果您注册一个免费帐户,您将收到一个个人api密钥,并每月访问800个电话。
用于执行OCR的图像文件;支持常见的文件格式,如png和jpeg。
识别模式-这是可选的;可能的值是:
Basic:提供基本的识别,并且不能抵抗页面旋转、倾斜或低质量的图像;使用1-2 api调用。
正常:提供高度容错的ocr识别;使用26-30个api调用。
高级:提供最高质量和最容错的识别使用28-30个API调用.默认识别模式是高级的
语言–这是可选的,但默认语言是英语(ENG)。可能的数值是ENG(英文)、ARA(阿拉伯文)、ZIO(简体)、Zo-hant(中文-传统)、ASM(阿萨姆语)、AFR(南非荷兰语)、AMH(阿姆哈拉语)、AZE(阿塞拜疆)、AZE-Cyrl(阿塞拜疆-西里尔语)、BEL(白俄罗斯)、Ben(孟加拉)、BOD(藏语)、BOS(波斯尼亚)、BUL(保加利亚)、CAT(加泰罗尼亚语);瓦伦西亚)、行政首长协调会(Cebuano)、CES(捷克)、CHR(切罗基)、Cym(威尔士语)、Dan(丹麦语)、DEU(德语)、Dzo(Dzongkha)、ELL(希腊语)、ENM(古语/中英语)、EPO(世界语)、EST(爱沙尼亚语)、EUS(巴斯克语)、FAS(波斯语)、Fin(芬兰语)、FRA(法语)、Frk(Frankish)、FRM(中法)、GLE(爱尔兰语)、GLG(加利西亚语)、GRC(古希腊语)、HAT(Hatian)、heb(希伯来语)、HIN(印地语)、HRV(克罗地亚语)、Hun(匈牙利人)、Iku(因努基特人)、Ind(印度尼西亚人)、ISL(冰岛人)、ITA(意大利语)、ITA-old(老意大利语)、Jav(爪哇人)、JPN(日本人)、Kanan(Kannada)、Kat(格鲁吉亚人)、Kat-old(老格鲁吉亚人)、KAZ(哈萨克)、KHM(中高棉人)、KIR(Kirghiz)、KOR(韩语)、KUR(库尔德人)、老挝(老挝)、LAT(拉丁语)、LAV(拉脱维亚人)、Lit(立陶宛人)、Mal(Mal(Maralam)、Mar(Marathi)、MKD(马其顿人)、MMLT(马耳他人)、MSA(马来语)、MYA(缅甸语)、NEP(尼泊尔语)、NLD(荷兰语)、NOR(挪威语)、ORI(Oriya)、PAN(Panjabi)、POL(波兰语)、POR(葡萄牙语)、Pusus(普什图语)、Ron(罗马尼亚)、Rus(俄语)、San(梵语)、sin(Sinhala)、SLK(斯洛伐克语)、SLV(斯洛文尼亚语)、SPA(西班牙语)、SPA-老(旧西班牙语)、SQI(塞尔维亚语)、SRP-LAT(拉丁语)、SWA(斯瓦希里语)、SWE(瑞典)、Syr(叙利亚语)、TAM(Tamil)、电话:Tlugu、TGK(塔吉克)、TGL(塔吉克语)、TGL(泰语)、THA(泰语)、TIR(蒂格里尼亚)、TUR(土耳其语)、UIG(维吾尔语)、UKR(乌克兰语)、URD(乌尔都语)、UZB(乌兹别克语)、UZB-Cyr(西里尔语乌兹别克语)、VIE(越南语)、Yid(Yiddisk)
预处理-这是可选的;默认的预处理模式是自动的。可能的值是
无:不对图像进行预处理
自动:在应用OCR之前对图像进行增强(推荐)
通过将图像用于文本函数,您将能够在需要时轻松地提供扫描文档的文本版本。

专题: API, 爪哇 图像到文字的转换, OCR API OCR文档扫描
Dzone贡献者所表达的意见是他们自己的。

流行于Dzone
5大数据趋势将主导2021年
何时何时不使用MicroServices
使用Protobuf和OpenAPI管理API的现代方法
DFS与BFS:有什么区别?

福州软件开发哪家强?

版权所有:https://www.eraycloud.com 转载请注明出处