SpringBoot+OCR 实现图片文字识别

 更新时间:2021年12月17日 11:26:15   作者:ripen、梓玖  
本文主要介绍了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 图片文字识别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中PropertyDescriptor的用法及说明

    Java中PropertyDescriptor的用法及说明

    这篇文章主要介绍了Java中PropertyDescriptor的用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 基于Java中throw和throws的区别(详解)

    基于Java中throw和throws的区别(详解)

    下面小编就为大家带来一篇基于Java中throw和throws的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • JavaIO模型中的BIO,NIO和AIO详解

    JavaIO模型中的BIO,NIO和AIO详解

    这篇文章主要为大家详细介绍了JavaIO模型中的BIO,NIO和AIO,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Java中常用的四种引用类型详解

    Java中常用的四种引用类型详解

    Java中常用的四种引用类型,分别为,强引用、软引用、弱引用以及虚引用,这篇文章主要为大家介绍了这四种引用的用法,需要的可以参考一下
    2023-06-06
  • SpringBoot中服务消费的实现

    SpringBoot中服务消费的实现

    本文主要介绍了SpringBoot中服务消费的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java将Object转换为数组的代码

    Java将Object转换为数组的代码

    这篇文章主要介绍了Java将Object转换为数组的情况,今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、Map等对象是否为空的操作,需要的朋友可以参考下
    2022-09-09
  • 通过Java实现对PDF页面的详细设置

    通过Java实现对PDF页面的详细设置

    这篇文章主要介绍了通过Java实现对PDF页面的详细设置,下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小、页边距、纸张方向、页面旋转等,需要的朋友可以参考下
    2019-07-07
  • 详解使用Java原生代理实现AOP实例

    详解使用Java原生代理实现AOP实例

    本篇文章主要介绍了详解使用Java原生代理实现AOP实例,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • 详解Maven私服Nexus的安装与使用

    详解Maven私服Nexus的安装与使用

    这篇文章主要介绍了详解Maven私服Nexus的安装与使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Java实现的按照顺时针或逆时针方向输出一个数字矩阵功能示例

    Java实现的按照顺时针或逆时针方向输出一个数字矩阵功能示例

    这篇文章主要介绍了Java实现的按照顺时针或逆时针方向输出一个数字矩阵功能,涉及java基于数组遍历、运算的矩阵操作技巧,需要的朋友可以参考下
    2018-01-01

最新评论