SpringBoot+OCR 实现图片文字识别

网友投稿 884 2022-11-14

SpringBoot+OCR 实现图片文字识别

SpringBoot+OCR 实现图片文字识别

本篇介绍的是基于百度人工智能接口的文字识别实现。

1. 注册百度云,获得AppID

此处百度云非百度云盘,而是百度智能云。

大家可进入https://cloud.baidu.com/ 自行注册,这里就不多说了。

接下来,我们进行应用的创建

所需接口根据实际勾选,我们暂时只需前四个即可。

2. 日常demo操作

pom.xml:

com.baidu.aip

java-sdk

4.11.3

com.fasterxml.jackson.core

jackson-databind

2.9.8

jsonChange.class:(json处理工具类)

public class JsonChange {

/**

* json字符串转换为map

*/

public static Map 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 OcrControllhttp://er {

@PostMapping(value = "/ocr")

public Map ocr(MultipartFile file) throws Exception {

AipOcr client = new AipOcr("AppID", "API Key", "Secret Key");

// 传入可选参数调用接口

HashMap options = new HashMap(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

str = str + ((Map) list.get(i)).get("words") + "\n";

}

接下来 postman 测试

ocr识别出的全部数据输出

提取其中识别的文字,剔除其他信息

源码-

str = str + ((Map) list.get(i)).get("words") + "\n";

}

接下来 postman 测试

ocr识别出的全部数据输出

提取其中识别的文字,剔除其他信息

源码-

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一文带你理解 RocketMQ 广播模式实现机制
下一篇:Vue项目中使用ellint和prettier-规范和约束我们的代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~