一、创建百度应用

1、在浏览器输入网址https://login.bce.baidu.com/或者百度搜索‘百度ai’点击第一个。点击主页的产品服务,看到文字识别。如下图所示:

2、点击创建应用
创建完应用后,才能获取百度AI的授权

3、创建完成后可查看相应API key和Secret Key

2、查看sdk文档

点击文字识别下面的技术文档https://cloud.baidu.com/doc/OCR/index.html,如图


可以根据官方提供的文档进行图文识别,下面博主为大家提供了java的工具类

3、java调用图文识别的工具类

3.1 获取access_token

import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/*** 获取token类*  https://github.com/ourlang* @author   福小林*/public class AuthService {/*** 获取权限token* @return 返回示例:* {* "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",* "expires_in": 2592000* }*/public static String getAuth() {// 官网获取的API Key 更新为你注册的String clientId = "sZoHMGl0jo1pSXQ1SeWiG8kv";// 官网获取的 Secret Key 更新为你注册的String clientSecret = "FPRCv0tbhoEXjDD6Gj7XWLhg64EqAelo";return getAuth(clientId, clientSecret);}/*** 获取API访问token* 该token有一定的有效期,需要自行管理,当失效时需重新获取.* @param ak - 百度云官网获取的 API Key* @param sk - 百度云官网获取的 Securet Key* @return assess_token 示例:* "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"*/private static String getAuth(String ak, String sk) {// 获取token地址String authHost = "https://aip.baidubce.com/oauth/2.0/token?";String getAccessTokenUrl = authHost// 1. grant_type为固定参数+ "grant_type=client_credentials"// 2. 官网获取的 API Key+ "&client_id=" + ak// 3. 官网获取的 Secret Key+ "&client_secret=" + sk;try {URL realUrl = new URL(getAccessTokenUrl);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();connection.setRequestMethod("GET");connection.connect();// 定义 BufferedReader输入流来读取URL的响应BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));StringBuilder result = new StringBuilder();String line;while ((line = in.readLine()) != null) {result.append(line);}JSONObject jsonObject = new JSONObject(result.toString());return jsonObject.getString("access_token");} catch (Exception e) {//打印错误日志e.printStackTrace(System.err);}return null;}
}

3.2 调用服务测试

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;/*** 图像文字识别公用接口类* https://github.com/ourlang* @author 福小林*/public class ImageTextUtil {/*** 调用百度的图文识别接口*/private static final String POST_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" + AuthService.getAuth();private static final String BASE64_START_MARK = "data:image/png;base64,";/*** 根据图片的base64编码实现图文识别功能** @param imgStr base64图片字符串* @return 识别结果,为json格式* @throws URISyntaxException URI打开异常* @throws IOException        io流异常*/public static String getTextByBase64(String imgStr) throws URISyntaxException, IOException {StringBuilder sb = new StringBuilder();if (imgStr.startsWith(BASE64_START_MARK)){imgStr=imgStr.substring(22);}String[] strings = splitStringByLength(imgStr, 1000);for (String tempStr : strings) {sb.append(tempStr);}String s = encodeUriComponent(sb.toString());String param = "image=" + s;return post(param);}/*** @param url 图片url http地址* @return 识别结果,为json格式*/public static String getTextByUrl(String url) throws IOException, URISyntaxException {String param = "url=" + url;return post(param);}/**** 将字符串按固定长度切割成字符子串* @param src 需要切割的字符串* @param length 字符子串的长度* @return 字符子串数组*/public static String[] splitStringByLength(String src, int length) {//检查参数是否合法if (null == src || src.isEmpty()) {System.out.println("the string is null");return null;}if (length <= 0) {System.out.println("the length < 0");return null;}//获取整个字符串可以被切割成字符子串的个数int n = (src.length() + length - 1) / length;String[] split = new String[n];for (int i = 0; i < n; i++) {if (i < (n - 1)) {split[i] = src.substring(i * length, (i + 1) * length);} else {split[i] = src.substring(i * length);}}return split;}/*** 通过传递参数:url和image进行文字识别** @param param 区分是url还是image识别* @return 识别结果* @throws URISyntaxException URI打开异常* @throws IOException        IO流异常*/private static String post(String param) throws URISyntaxException, IOException {//开始搭建post请求HttpClient httpClient = new DefaultHttpClient();HttpPost post = new HttpPost();URI url = new URI(POST_URL);post.setURI(url);//设置请求头,请求头必须为application/x-www-form-urlencoded,因为是传递一个很长的字符串,不能分段发送post.setHeader("Content-Type", "application/x-www-form-urlencoded");StringEntity entity = new StringEntity(param);post.setEntity(entity);HttpResponse response = httpClient.execute(post);if (response.getStatusLine().getStatusCode() == 200) {String str;try {//读取服务器返回过来的json字符串数据str = EntityUtils.toString(response.getEntity());return str;} catch (Exception e) {e.printStackTrace();return null;}}return null;}/*** 返回编码后的字符串** @param s 要编码的字符串* @return 编码好的字符串*/public static String encodeUriComponent(String s) {String result;try {result = URLEncoder.encode(s, "UTF-8").replaceAll("\\+", "%20").replaceAll("\\%21", "!").replaceAll("\\%27", "'").replaceAll("\\%28", "(").replaceAll("\\%29", ")").replaceAll("\\%7E", "~");}// This exception should never occur.catch (UnsupportedEncodingException e) {result = s;}return result;}public static void main(String[] args) {try {String textByUrl = getTextByUrl("http://lsdcloud.com/img/goImage/file.png");System.out.println(textByUrl);} catch (URISyntaxException | IOException e) {e.printStackTrace();}}
}

3.3.输出结果如下

java调用百度AI实现图文识别功能相关推荐

  1. Java调用百度AI实现人体属性分析

    Java调用百度AI实现人体属性分析 好久没有更新了...闲来无事发一下模仿百度AI的人体属性分析. 百度AI效果图如下: 本人开发效果图如下: 界面大家可以忽略........下面讲讲代码实现 1. ...

  2. php 调用百度AI实现图像审核功能

    今天主要记录下我完成百度AI实现图像审核功能做出可笑的行为,哈哈哈!! 废话不多说,开始了············ 各位准备好了没有.. 1.首先肯定是登录 百度AI开放平台了,没有账号的同志自行注册 ...

  3. 保姆级——Java调用百度OCR实现身份证识别

    具体实现功能和参数,可以看百度的API开发文档:https://ai.baidu.com/ai-doc/OCR/rk3h7xzck 其实我是看不懂API文档的 文章中的请求参数 调用百度的OCR需要做 ...

  4. Java调用百度AI开放平台API

    百度AI开放平台 百度AI开放平台是全球领先的人工智能服务平台,面向开发者及企业开放120多项全球领先的AI能力和软硬一体组件,并提供 EasyDL定制化训练平台.对话系统开发平台UNIT.自定义模板 ...

  5. python百度ai文字识别、代码分析_python利用百度AI实现文字识别功能

    本文为大家分享了python实现文字识别功能大全,供大家参考,具体内容如下 1.通用文字识别 # -*- coding: UTF-8 -*- from aip import AipOcr # 定义常量 ...

  6. php调用人脸识别接口,PHP调用百度AI接口人脸识别-语音技术-文本识别-图像识别...

    Rain-AI系统基于百度人工智能接口二次开发 有问题的可以加入这个群:226520254,大家一起交流 说明:这个代码是原生PHP开发的,在6个月前我为了效率和安全性能使用框架进行重写,测试站里的是 ...

  7. ai图像识别python的项目_Python3调用百度AI识别图片中的文字功能示例【测试可用】...

    本文实例讲述了Python3调用百度AI识别图片中的文字功能.分享给大家供大家参考,具体如下: 首先pip install命令安装baidu-aip模块,如下图所示(这里使用pip3 install ...

  8. python调用百度AI接口识别营业执照

    上一篇文章介绍了应用python中的pytesseract库和OCR识别软件进行文字识别.本文介绍应用百度AI的文字识别功能对营业执照进行识别,感兴趣的朋友一起来看看效果吧.    一.安装baidu ...

  9. Python调用百度AI识别身份证

    本文介绍应用百度AI的文字识别功能对身份证进行识别,感兴趣的朋友一起来看看效果吧.    一.安装baidu-aip模块    按win+R打开cmd,在里面输入 pip3 install baidu ...

最新文章

  1. 记录两段经典标定代码
  2. k8s部署dubbo-admin 2.5.10
  3. [CQOI2017] 老C的任务(差分 + 树状数组 / K-D tree)
  4. javascript 西瓜一期 09 字符与编码的对应关系 理解
  5. 复习一下,免得下次面试又栽在沟里~
  6. workList in DCMTK问题总结
  7. 《从零开始走进FPGA》导读
  8. Linux压缩文件与解压文件(*.zip)
  9. 初始----python数字图像处理--:环境安装与配置
  10. 欠阿里云 1 分钱,数据被删除
  11. 做项目时自己的心得体会
  12. 计算机辅助英语教学 研究背景,计算机辅助外语教学中的教师角色研究
  13. 【Autoware自动驾驶-开源项目实践】大家快来入门体验啦
  14. spark python编程 林子雨_林子雨编著《Spark编程基础(Python版)》教材第5章的命令行和代码...
  15. MTK FAQ最新资料,MTK_on_line_FAQ_SW_ALPS_Framework+-+Battery
  16. js 数据类型之字符串
  17. VMware+CentOS7搭建私有云桌面服务
  18. 和绅的女人们——汉人、黑人、白人、还有他的“干”女儿
  19. 配置静态路由——默认路由
  20. 2018CCPC吉林赛区 hdu6555~hdu6566

热门文章

  1. F623光猫超级管理员密码获取
  2. 一种基于视频帧差异视频卡顿检测方案
  3. mysql导出xls_MySQL导出 xls上传到异机
  4. 心流:写作、编程和修炼武功的共同法门
  5. 5G+边缘计算 物联网嵌入式边缘计算平台
  6. android devik进程,suckit后门程序的分析 (二)
  7. 英语单词词根词缀和词性互相转换
  8. 我的大学(学习-上)
  9. 《计算机应用基础》第04章在线测试,《计算机应用基础》在线测试.doc
  10. Sketch for mac(专业矢量绘图设计软件)