SpringBoot+OCR 实现图片文字识别
时间:2022-04-08 10:46:15|栏目:JAVA代码|点击: 次
本篇介绍的是基于百度人工智能接口的文字识别实现。
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识别出的全部数据输出

提取其中识别的文字,剔除其他信息
上一篇:使用Runtime 调用Process.waitfor导致的阻塞问题
栏 目:JAVA代码
下一篇:SpringBoot集成Druid配置(yaml版本配置文件)详解
本文地址:http://www.codeinn.net/misctech/198538.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




