一、知识点简介

OCR(optical character recognition)文字识别是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程。 —— OCR文字识别 - 百度百科

本篇功能是基于百度智能云人工智能接口的文字识别实现,数据请求以Spring Boot为框架。

二、准备工作

首先我们进入百度智能云-管理中心(https://console.bce.baidu.com/)创建一个新应用。

创建新应用时,勾选文字识别下的“通用文字识别”系列选项。(如有其他需求,例如身份证识别等请自行勾选)

创建完毕后,我们可以查看App ID、ApI Key以及Secret Key,这些参数用于后续请求操作。

三、搭建项目

项目框架

  • Spring Boot 2.3.2.RELEASE
  • 百度云人体识别接口 Baidu AIP Java Sdk 4.15.1

在Spring Boot的pom.xml文件引入百度云人体识别接口包:

<!-- 百度云人体识别接口 SDK https://mvnrepository.com/artifact/com.baidu.aip/java-sdk --><dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.15.1</version></dependency>

代码编写

静态类

SystemConstants

package com.qianlingo.ocr.constants;/*** 系统静态类* @author qianlingo* @date 2020/8/10*/
public class SystemConstants {/*** 百度 app_id*/public static final String APP_ID = "";/*** 百度 api_key*/public static final String API_KEY = "";/*** 百度 SECRET_KEY*/public static final String SECRET_KEY = "";}

服务层 实现类

OcrServiceImpl

package com.qianlingo.ocr.service.impl;import com.baidu.aip.ocr.AipOcr;
import com.qianlingo.ocr.constants.SystemConstants;
import com.qianlingo.ocr.service.IOcrService;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.util.HashMap;/*** ORC - Service 实现类** @author qianlingo* @date 2020/8/10*/
@Service
public class OcrServiceImpl implements IOcrService {private static final Logger log= LoggerFactory.getLogger(OcrServiceImpl.class);/*** 请求ocr接口,返回json数据* @param multipartFile 文件* @return json 字符串数据*/@Overridepublic String actionOcr(MultipartFile multipartFile) {AipOcr client = new AipOcr(SystemConstants.APP_ID, SystemConstants.API_KEY, SystemConstants.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 = new byte[0];try {buf = multipartFile.getBytes();} catch (IOException e) {e.printStackTrace();log.error("获取文件字节数据异常,{}",e.getMessage());}JSONObject res = client.basicGeneral(buf, options);String jsonData = "";try {jsonData = res.toString(2);} catch (JSONException e) {log.error("获取json数据异常,{}",e.getMessage());}return jsonData;}
}

视图控制层

OcrController

package com.qianlingo.ocr.controller;import com.qianlingo.ocr.service.IOcrService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;/*** Ocr Controller* @author qianlingo* @date 2020/8/10*/
@RestController
@RequestMapping("/ocr")
public class OcrController {@Resourceprivate IOcrService iOrcService;/*** 传入图片文件,进行识别操作* @param file  文件数据*/@RequestMapping("/actionOcr")@ResponseBodypublic String actionOcr(MultipartFile file){return this.iOrcService.actionOcr(file);}}

Postman 接口测试

body标签,选择form-data提交类型,key框选择file类型,选择文件后点击Send请求接口。

测试图片:

源码

代码已发布至Gitee

Gitee: https://gitee.com/qianlingooo/study-baidu-ocr

Spring Boot + 百度 OCR 图片文字识别功能相关推荐

  1. 一篇文章搞定百度OCR图片文字识别API

    一篇文章搞定百度OCR图片文字识别API https://www.jianshu.com/p/7905d3b12104 转载于:https://www.cnblogs.com/chongdongxia ...

  2. Android集成百度OCR图片文字识别——总结

    近期由于工作内容的需要,我要给项目集成一个图片文字识别功能,据说百度的不错,所以今天写一个关于百度OCR的集成总结,以便以后再次使用不用去看官方文档. 首先肯定是要在百度管理平台注册账号并登录,然后照 ...

  3. python图像识别系统_Python图像处理之图片文字识别功能(OCR)

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

  4. python文字识别时、当文字不清晰时怎么处理_Python图像处理之图片文字识别功能(OCR)...

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

  5. TOOLFK工具-在线OCR图片文字识别工具

    本文要推荐的[TOOLFK]在线OCR图片文字识别工具 ,提供图像文字识别,提取图片文字,OCR图片文字识别,图片转文字,把图片拖拽到上传框中自动上传识别,图片文件最大3M 網站名稱:ToolFk 網 ...

  6. 阿里云 OCR 图片文字识别接口使用案例(java)

    阿里云 OCR 图片文字识别接口使用案例(java) 阿里云官方接口文档 前期需要完成 购买阿里云服务 购买服务 可以购买测试服务.每个阿里云用户可以购买1次免费的500次接口请求进行测试 购买完成之 ...

  7. OCR图片文字识别,人工手动图片标注软件安装过程

    OCR图片文字识别,人工手动图片标注软件安装过程,本章关注标注软件的安装,启动过程 1. 下载 anaconda anaconda  下载慢的问题: 使用国内镜像地址下载: https://mirro ...

  8. 百度大脑和腾讯云的OCR图片文字识别接口

    百度大脑 通用文字识别: https://ai.baidu.com/tech/ocr/general 通用物体和场景识别:https://ai.baidu.com/tech/imagerecognit ...

  9. java ocr文字识别软件_Java文字识别软件-调用百度ocr实现文字识别

    java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...

最新文章

  1. Serverless特点及应用
  2. Makefile中指示符“include”、“-include”和“sinclude”的区别
  3. 拦截器获取请求参数post_「SpringBoot WEB 系列」RestTemplate 之自定义请求头
  4. iOS 计算文字宽度的一个细节
  5. 《杀戮地带:暗影坠落(Killzone: Shadow Fall)》工程师讲解使用屏幕空间反射系统
  6. Remoting疑惑续集之再续
  7. JVM :Btrace监控工具
  8. C++ string 用法详解(转)
  9. html比赛项目,趣味运动会项目
  10. 【JZOJ5882】雪人
  11. 计算机网络.第三节课.笔记.信道复用、频分复用、统计时分复用、波分复用、时分复用、码分复用、双绞线带宽、双绞线
  12. 基于双边滤波的图像增强算法
  13. Android 实现 iBeacon
  14. 2022图书出版行业营销白皮书-巨量引擎
  15. java与c语言哪个好学_Java编程和C语言哪个好学
  16. 从CNCB下载单细胞转录组fastq文件并定量
  17. 直播出新规 这些行为会被限制参加活动
  18. web开发常见问题和解决方法
  19. 关于mysql的密码
  20. 什么是端到端加密?企业E2EE的优势正在显现

热门文章

  1. python解析excel内存溢出_phpExcel大数据量情况下导出内存溢出解决
  2. Arduino主控板三色呼吸灯衰减
  3. 音频的价值、AI Codec 的意义与算法能力的边界丨一期一会 • 音频工程师专场
  4. 美团外卖2017红包问题点评
  5. 电子工程可以报考二建_【电子信息工程专业能考二级建造师吗_2020年二级建造师】- 环球网校...
  6. 美团2023年春招在线前端笔试题回忆版
  7. [附源码]Java计算机毕业设计SSM蛋糕店会员管理系统
  8. 一招先吃遍天,样样精通,样样稀松。
  9. 计算机文档编辑图片,ABBYY FineReader教程:图片上的文字转为可编辑word文档-实用电脑技巧-电脑技巧收藏家...
  10. 远程复制服务器大于2g文件吗,ps保存文件太大_PS文件大于2G存不了怎么办