SpringBoot+OCR 實現圖片文字識別
本篇介紹的是基於百度人工智能接口的文字識別實現。
1. 註冊百度雲,獲得AppID
此處百度雲非百度雲盤,而是百度智能雲。
大傢可進入https://cloud.baidu.com/ 自行註冊,這裡就不多說瞭。
接下來,我們進行應用的創建
所需接口根據實際勾選,我們暫時隻需前四個即可。
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> <!-- 對象轉換成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字符串轉換為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”) 切記換成剛剛創建的應用的AppID,而且三個參數均是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"); // 傳入可選參數調用接口 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"); // 參數為二進制數組 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識別出的全部數據輸出
提取其中識別的文字,剔除其他信息
源碼下載
到此這篇關於SpringBoot+OCR 實現圖片文字識別的文章就介紹到這瞭,更多相關SpringBoot OCR 圖片文字識別內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java通過百度API實現圖片車牌號識別
- 深入淺析Java常用的格式化Json工具類
- Python調用百度AI實現身份證識別
- 解決Swagger2返回map復雜結構不能解析的問題
- springboot Actuator的指標監控可視化功能詳解