印刷文字识别(OCR):通俗来讲就是将图片中的印刷文字识别出来。
阿里云提供了多种OCR服务,在此使用的是印刷文字识别-文档小说图片文字识别,主要用于企业文档,法律法务文档,信件等,以及小说,文学类书籍等场景的文字识别。

文档小说图片文字识别

思路:将图片转化为base64编码,借助阿里OCR接口分析,返回印刷文字的json文件。

package com.lizi.ocr;import com.lizi.tools.HttpUtils;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;import java.io.*;
import java.util.HashMap;
import java.util.Map;/*** 使用阿里OCR接口实现印刷文档图片转文字*/
public class OCRDemo {public static void main(String[] args) {// 将图片转换为base64编码格式String imgPath = "C:\\Users\\lizic\\Desktop\\2.png";String imgStr = imgToBase64(imgPath);ocr(imgStr);}/*** 阿里OCR接口*/public static void ocr(String imgBase64){String host = "https://ocrapi-document.taobao.com"; // 阿里接口地址String path = "/ocrservice/document"; // 具体地址String method = "POST";  // 请求类型POSTString appcode = "你购买的阿里OCR服务的AppCode"; // 产品密钥Map<String, String> headers = new HashMap<String, String>();//最后在header中的格式(中间是英文空格)为Authorization:APPCODE yourAppCodeheaders.put("Authorization", "APPCODE " + appcode);//根据API的要求,定义相对应的Content-Typeheaders.put("Content-Type", "application/json; charset=UTF-8");Map<String, String> querys = new HashMap<String, String>();// img 和 url 只能使用一个String bodys = "{\"img\":\""+imgBase64+"\",\"prob\":false}";try {/*** HttpUtils下载:https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java* 相关依赖请参照:https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml*/HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);System.out.println(response.toString());// 获取response的bodySystem.out.println(EntityUtils.toString(response.getEntity()));} catch (Exception e) {e.printStackTrace();}}/*** 将图片转换为base64字符串* @param imgPath 编码图片的路径* @return imgStr 图片的base64编码字符串*/public static String imgToBase64(String imgPath){byte[] data = null;InputStream in = null;try {// 将图片读入data中in = new FileInputStream(new File(imgPath));data = new byte[in.available()];in.read(data);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {try {in.close();} catch (IOException e) {e.printStackTrace();}}// 对data进行Base64编码BASE64Encoder encoder = new BASE64Encoder();String imgStr = encoder.encode(data);return imgStr;}/*** 将Base64字符串转换为图片* @param imgStr 图片的base64编码字符串;* @param imgPath 生成图片的路径* @return 是否生成图片*/public static boolean base64ToImg(String imgStr, String imgPath){if(imgStr == null){return false;}// 对imgBase64字符串进行解码OutputStream out = null;try {BASE64Decoder decoder = new BASE64Decoder();byte[] b = decoder.decodeBuffer(imgStr);for(int i = 0 ; i <b.length ; i++){// 调整异常数据if(b[i] < 0){b[i] += 256;}}// 生成图片文件out = new FileOutputStream(new File(imgPath));out.write(b);out.flush();} catch (IOException e) {e.printStackTrace();}finally {try {out.close();} catch (IOException e) {e.printStackTrace();}}return true;}}

转载于:https://www.cnblogs.com/liziczh/p/9322208.html

Java调用阿里OCR接口实现印刷文字识别相关推荐

  1. python调用搜狗OCR接口实现图片文字识别

    import requests multiple_files = {'pic': ('1111111.jpg', open( r'QQ截图20180905172943.jpg', 'rb'), 'im ...

  2. 调用百度ai接口实现图片文字识别详解

    调用百度ai接口实现图片文字识别详解 首先先介绍一下这篇博文是干嘛的,为了不浪费大家时间.公司最近和短视频公司合作,需要监控app的截图上的文字是否符合规范,也就是确保其没有违规的文字.到网上找了一些 ...

  3. 调用百度AI接口实现图片文字识别

    一.准备阶段 进入百度AI网址点击这里跳转 ,点击导航栏的开放能力 ---- 文字识别 ---- 通用文字识别,进入文字识别OCR界面. 在文字识别ORC界面点击 技术文档 进入帮助文档. 在左侧可以 ...

  4. Java调用百度OCR接口实现文字识别

    博主在项目开发中需要完成一个文字识别功能,由于之前有过使用百度云平台接口进行身份证识别的经历,因此这次也是自然而然的再次选择了百度AI平台,首先需要开通百度通用文字识别功能. 然后我们需要创建一个应用 ...

  5. python调用百度接口实现ocr识别_Python 3调用百度OCR API实现剪贴板文字识别

    本程序调用百度OCR API对剪贴板的图片文字识别,配合CaptureScreen软件,可快速识别文字. #!python3 import urllib.request, urllib.parse i ...

  6. Python3调用阿里OCR

    阿里的接口是python2的,因为电脑上的很多包都装在了python3,所有记录一下python3调用阿里ocr接口. #coding:utf-8 import requests from base6 ...

  7. [Python]利用百度AI的ocr实现屏幕内区域文字识别

    整体思路 1.[截图](https://blog.csdn.net/weixin_44343083/article/details/112252207) 2.图片压缩(百度的ocr要求图片小于4M) ...

  8. Java调用百度OCR文字识别API实现图片文字识别软件

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

  9. Android图片文字识别(阿里OCR接口)

    最近使用了阿里云的OCR文字识别API 先来看看效果 我使用的是通用类文字识别,具体实现过程如下: 1.购买阿里云的通用类文字识别 目前是0元免费的,可以使用500次.购买成功后到->控制台-& ...

最新文章

  1. VS新建类自动添加版本注释
  2. 5-Python3从入门到实战—基础之数据类型(列表-List)
  3. linux 用户和权限管理
  4. 23. 进程并发控制之Semaphore
  5. ffmpeg转码速度控制方法
  6. Ubuntu 迁移 /tmp 到别的硬盘
  7. 漫画:高并发下的HashMap
  8. VS2008水晶报表发布部署总结
  9. 计算机知识复制粘贴,教你如何使用电脑复制粘贴快捷键
  10. js:腾讯云播放器无法自动播放的问题
  11. elasticsearch插件之cerebro的安装
  12. uni-app - 苹果安卓系统监听物理返回按键(手机左滑返回监听)
  13. WebBrowser 显示Html内容3点细节技巧
  14. 微信公众号开发:服务器配置(Java)
  15. 用python求两个人的平均身高_大学python题 求大佬解答!!!
  16. 【LAS】IJK设置OPTION源码分析及播放器传递manifest_string到AVInputFormat
  17. 用 Gnuplot 绘制实验数据
  18. android auto只能用谷歌地图吗,Android Auto获得导航、停车、充电等多方面新应用支持...
  19. 区块链技术助力解决小微企业融资难融资贵问题
  20. dos2unix命令将dos文件转换为unix格式

热门文章

  1. STM32G0系列将内部FLASH作为EEPROM使用,巧妙编程,可延长Flash擦写寿命上百倍,已用于量产产品。
  2. VS2019常用快捷键
  3. MarkDown语法快捷键
  4. SpringBoot结合Quartz实现定时任务
  5. python django 商品进销存管理系统
  6. HBuilder输入变成繁体处理方法
  7. RASP之IAST扫描器的安装及使用
  8. MySQL 数据库练习题记录01
  9. win11摄像头黑了用不了的七个解决办法
  10. ps aux排序 (查看进程占用内存和cpu)