SpringBoot+OCR?實現(xiàn)圖片文字識別
本篇介紹的是基于百度人工智能接口的文字識別實現(xiàn)。
1. 注冊百度云,獲得AppID
此處百度云非百度云盤,而是百度智能云。
大家可進入https://cloud.baidu.com/ 自行注冊,這里就不多說了。
接下來,我們進行應(yīng)用的創(chuàng)建


所需接口根據(jù)實際勾選,我們暫時只需前四個即可。

2. 日常demo操作
pom.xml:
<dependencies>
<!-- 百度人工智能依賴 -->
<!-- https://mvnrepository.com/artifact/com.baidu.aip/java-sdk -->
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.11.3</version>
</dependency>
<!-- 對象轉(zhuǎn)換成json -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
</dependencies>
JsonChange.class:(json處理工具類)
public class JsonChange {
/**
* json字符串轉(zhuǎn)換為map
*/
public static <T> Map<String, Object> json2map(String jsonString) throws Exception {
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
return mapper.readValue(jsonString, Map.class);
}
}
OcrController.class:
AipOcr client = new AipOcr(“AppID”, “API Key”, “Secret Key”) 切記換成剛剛創(chuàng)建的應(yīng)用的AppID,而且三個參數(shù)均是String類型。
@RestController
public class OcrController {
@PostMapping(value = "/ocr")
public Map<Object, Object> ocr(MultipartFile file) throws Exception {
AipOcr client = new AipOcr("AppID", "API Key", "Secret Key");
// 傳入可選參數(shù)調(diào)用接口
HashMap<String, String> options = new HashMap<String, String>(4);
options.put("language_type", "CHN_ENG");
options.put("detect_direction", "true");
options.put("detect_language", "true");
options.put("probability", "true");
// 參數(shù)為二進制數(shù)組
byte[] buf = file.getBytes();
JSONObject res = client.basicGeneral(buf, options);
Map map = JsonChange.json2map(res.toString());
return map;
}
}
如果只想要識別出來的文字即可,可加入
// 提取并打印出識別的文字
List list = (List) map.get("words_result");
int len = ((List) map.get("words_result")).size();
for(int i=0; i<len; i++) {
str = str + ((Map) list.get(i)).get("words") + "\n";
}
接下來 postman 測試

ocr識別出的全部數(shù)據(jù)輸出

提取其中識別的文字,剔除其他信息
到此這篇關(guān)于SpringBoot+OCR 實現(xiàn)圖片文字識別的文章就介紹到這了,更多相關(guān)SpringBoot OCR 圖片文字識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring實戰(zhàn)之使用XML方式管理聲明式事務(wù)操作示例
這篇文章主要介紹了Spring實戰(zhàn)之使用XML方式管理聲明式事務(wù)操作,結(jié)合實例形式詳細分析了Spring XML方式管理聲明式事務(wù)具體步驟、配置、接口及使用技巧,需要的朋友可以參考下2020-01-01
淺談利用Spring的AbstractRoutingDataSource解決多數(shù)據(jù)源的問題
本篇文章主要介紹了淺談利用Spring的AbstractRoutingDataSource解決多數(shù)據(jù)源的問題,具有一定的參考價值,有需要的可以了解一下2017-08-08
IntelliJ IDEA語法報錯"Usage of API documented as @since 1.6+"的解決
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA語法報錯"Usage of API documented as @since 1.6+"的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
最優(yōu)雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企業(yè)級應(yīng)用(附源碼)
這篇文章主要介紹了最優(yōu)雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企業(yè)級應(yīng)用(附源碼),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
springboot打包部署到linux服務(wù)器的方法
這篇文章主要介紹了springboot打包部署到linux服務(wù)器的方法,通過實例代碼相結(jié)合的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06
關(guān)于java.lang.NumberFormatException: null的問題及解決
這篇文章主要介紹了關(guān)于java.lang.NumberFormatException: null的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
java實現(xiàn)在復(fù)制文件時使用進度條(java實現(xiàn)進度條)
在對大文件操作時,可能會需要些時間,此時為用戶提供進度條提示是非常常見的一項功能,這樣用戶就可以了解操作文件需要的時間信息。本實例為大家介紹了在復(fù)制大的文件時使用的進度條提示,需要注意的是,只有在讀取文件超過2秒時,才會顯示進度條2014-03-03

