java实现百度云文字识别接口代码

本文实例为大家分享了java实现百度云文字识别的接口具体代码,供大家参考,具体内容如下

public class Images { 

  public static String getResult() {
  String otherHost = "https://aip.baidubce.com/rest/2.0/ocr/v1/general";
   // 本地图片路径 

  String str="你的本地图片路径"

   String filePath = "str";
   try {
    byte[] imgData = FileUtil.readFileByBytes(filePath);
    String imgStr = Base64Util.encode(imgData);
    String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
    /**
    * access_token有过期时间, 客户端可自行缓存,过期后重新获取。
    */
    String accessToken = getAuth("申请的api key", "申请的secret key"); 

    //System.out.println("wwwwwwwwwwwwww");
    String result = HttpUtil.post(otherHost, accessToken, params);
    //System.out.println("sssssssssssssssssss");
    return result;
    //System.out.println(result);
   } catch (Exception e) {
    e.printStackTrace();
    return null;
   } 

  }
  public 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();
    // 获取所有响应头字段
    Map<String, List<String>> map = connection.getHeaderFields();
    // 遍历所有的响应头字段
    for (String key : map.keySet()) {
     System.err.println(key + "--->" + map.get(key));
    }
    // 定义 BufferedReader输入流来读取URL的响应
    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    String result = "";
    String line;
    while ((line = in.readLine()) != null) {
     result += line;
    }
    /**
     * 返回结果示例
     */
    System.out.println("result:" + result);
    JSONObject jsonObject = new JSONObject(result);
    String access_token = jsonObject.getString("access_token");
    return access_token; 

   } catch (Exception e) {
    System.err.printf("获取token失败!");
    e.printStackTrace(System.err);
   }
   return null;
  }
}

测试:

public static void main(String[] args) { 

  String otherHost = "https://aip.baidubce.com/rest/2.0/ocr/v1/general";
   // 本地图片路径
   String filePath = "本地图片路径";
   try {
    byte[] imgData = FileUtil.readFileByBytes(filePath);
    String imgStr = Base64Util.encode(imgData);
    String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
    *//**
     * 线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
     *//*
    String accessToken = getAuth("api key", "secret key");
    //System.out.println("wwwwwwwwwwwwww");
    String result = HttpUtil.post(otherHost, accessToken, params);
    //System.out.println("sssssssssssssssssss");
    System.out.println(result);
   } catch (Exception e) {
    e.printStackTrace();
   }
 }

小编再另分享一份网上找到的代码,百度云OCR文字识别功能,作者是:笑释一切。

import java.util.HashMap;
import java.util.Iterator;

import org.json.JSONArray;
import org.json.JSONObject;
import com.baidu.aip.ocr.AipOcr;

/**
 * 测试百度云OCR的文字识别功能 <br>
 * 打开百度云AI的官网: <br>
 * https://console.bce.baidu.com/ai/?_=1517288853048#/ai/ocr/overview/index <br>
 */
public class TestOcr { 

 //设置APP ID/AK/SK
 public static final String APP_ID = "10736110";
 public static final String API_KEY = "4nguIG7OdpHZFhdFnz2AbVhx";
 public static final String SECRET_KEY = "8GnUzj19H0Nie5nOc7HSGSH2VigjU9VL";

 public static void main(String[] args) {

  // 初始化一个AipOcr
  AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);

  // 传入可选参数调用接口
  HashMap<String, String> options = new HashMap<String, String>();
  // 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  options.put("recognize_granularity", "big");
  // 识别语言类型,默认为CHN_ENG。可选值包括:
  // CHN_ENG:中英文混合;
  // ENG:英文;
  // POR:葡萄牙语;
  // FRE:法语;
  // GER:德语;
  // ITA:意大利语;
  // SPA:西班牙语;
  // RUS:俄语;
  // JAP:日语;
  // KOR:韩语;
  options.put("language_type", "CHN_ENG");
  // 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。
  options.put("detect_direction", "true");
  // 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  options.put("detect_language", "true");
  // 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
  options.put("vertexes_location", "false");
  // 是否返回识别结果中每一行的置信度
  options.put("probability", "false");

  // 可选:设置网络连接参数
  client.setConnectionTimeoutInMillis(2000);
  client.setSocketTimeoutInMillis(60000);

  // 调用接口
  String path = "D:\\QQ截图20180130134257.png";
  JSONObject res = client.accurateGeneral(path, options);
  JSONArray myJson = res.getJSONArray("words_result");
  Iterator<Object> iterator = myJson.iterator();
  while(iterator.hasNext()){
   Object value = iterator.next();
   JSONObject obj = new JSONObject(value.toString());
   System.out.println(obj.get("words"));
  }

 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java图片识别文字的方法

    java文字识别程序的关键是寻找一个可以调用的OCR引擎.tesseract-ocr就是一个这样的OCR引擎,在1985年到1995年由HP实验室开发,现在在Google.tesseract-ocr 3.0发布,支持中文.不过tesseract-ocr 3.0不是图形化界面的客户端,别人写的FreeOCR图形化客户端还不支持导入新的 3.0 traineddata.但这标志着,现在有自由的中文OCR软件了. java中使用tesseract-ocr3.01的步骤如下: 1.下载安装tessera

  • java实现图片文字识别ocr

    最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现google有一个离线的工具,以下为java使用的demo 在此之前,使用这个工具需要在本地安装OCR工具: 下面一个是一定要安装的离线包,建议默认安装 上面一个是中文的语言包,如果网络可以FQ的童鞋可以在安装的时候就选择语言包在线安装,有多种语言可供选择,默认只有英文的 exe安装好之后,把上面一个文件拷到安装目录下tessdata文件夹下 如C:\Program Files (x86)\Tesseract-OCR\tessd

  • OPENCV+JAVA实现人脸识别

    本文实例为大家分享了JAVA实现人脸识别的具体代码,供大家参考,具体内容如下 官方下载 安装文件 ,以win7为例,下载opencv-2.4.13.3-vc14.exe 安装后,在build目录下 D:\opencv\build\java,获取opencv-2413.jar,copy至项目目录 同时需要dll文件 与 各 识别xml文件,进行不同特征的识别(人脸,侧脸,眼睛等) dll目录:D:\opencv\build\java\x64\opencv_java2413.dll xml目录:D:

  • 识别率很高的java文字识别技术

    java文字识别程序的关键是寻找一个可以调用的OCR引擎.tesseract-ocr就是一个这样的OCR引擎,在1985年到1995年由HP实验室开发,现在在Google.tesseract-ocr 3.0发布,支持中文.不过tesseract-ocr 3.0不是图形化界面的客户端,别人写的FreeOCR图形化客户端还不支持导入新的 3.0 traineddata.但这标志着,现在有自由的中文OCR软件了. java中使用tesseract-ocr3.01的步骤如下: 1.下载安装tessera

  • java实现百度云OCR文字识别 高精度OCR识别身份证信息

    本文为大家分享了java实现百度云OCR识别的具体代码,高精度OCR识别身份证信息,供大家参考,具体内容如下 1.通用OCR文字识别 这种OCR只能按照识别图片中的文字,且是按照行识别返回结果,精度较低. 首先引入依赖包: <dependency> <groupId>com.baidu.aip</groupId> <artifactId>java-sdk</artifactId> <version>4.6.0</version&

  • java实现百度云文字识别接口代码

    本文实例为大家分享了java实现百度云文字识别的接口具体代码,供大家参考,具体内容如下 public class Images { public static String getResult() { String otherHost = "https://aip.baidubce.com/rest/2.0/ocr/v1/general"; // 本地图片路径 String str="你的本地图片路径" String filePath = "str&quo

  • Python基于百度云文字识别API

    本文实例为大家分享了Python实现最简单的文字识别的具体代码,供大家参考,具体内容如下 Python版本:3.6.5 百度云提供的文字识别技术,准确率还是非常高的,而且每天还有5w次免费的调用量,对于用来学习或者偶尔拿来用用,已经完全足够了.文章提供一个模板,稍加修改就可以直接套用.注释中提到必须输入的地方,你都正确地输入了的话,就可以完成一次简单的文字识别了. # -*- coding: utf-8 -*- import requests import base64 class Orc_ma

  • java 百度手写文字识别接口配置代码

    代码如下所示: package org.fh.util; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; import java.util.Map; /** * 说明:获取文字识别token类 * 作者:

  • Java 离线中文语音文字识别功能的实现代码

    目录 1.pom文件如下: 2.工程结构: 3.语音识别工具类 4.前端交互 5.前端页面 6.运行效果 项目需要,要实现类似小爱同学的语音控制功能,并且要离线,不能花公司一分钱.第一步就是需要把音频文字化.经过各种资料搜集后,选择了vosk.这是vosk的官方介绍: Vosk is a speech recognition toolkit. The best things in Vosk are: Supports 19+ languages and dialects - English, I

  • Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解

    百度OCR体验地址: https://ai.baidu.com/tech/imagerecognition/general 腾讯OCR体验地址: https://cloud.tencent.com/act/event/ocrdemo 测试结果是:腾讯的效果要比百度的好 腾讯云目前额度是: 每个接口 1,000次/月免费,有6个文字识别的接口,一共是6,000次/月 百度接口调用之前写过文章 python实现百度OCR图片识别过程解析 使用步骤 1.注册账号: https://cloud.tenc

  • Java实现阿里云短信接口的示例

    阿里云短信服务接口 阿里云短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力. 支持向国内和国际快速发送验证码.短信通知和推广短信,服务范围覆盖全球200多个国家和地区.国内短信支持三网合一专属通道,与工信部携号转网平台实时互联.电信级运维保障,实时监控自动切换,到达率高达99%.完美支撑双11期间20亿短信发送,6亿用户触达. 快速开发 ①开启短信服务 1)登陆阿里云服务平台 2)选择控制台 3)点击左上角下拉按钮选择短信服务 4)开通短信服务 ②实名

  • Java结合百度云存储BCS代码分享

    一.简介 云也不是一个新概念了,云到底是什么东西,你叫我说个明明白白的我也说不出来,姑且算作联网的就叫做云.国内的云服务商还是有很多了,主要有两大类,一类是类似于阿里云的类主机型的云提供商,比如万网等传统空间商转过来的:还有一类是应用应用托管平台,比如BAE,SAE.相对于阿里云等空间商之类的来说,应用托管平台的入门更低,为广大的苦逼程序猿提供了一个好的测试平台. 我最近负责的软件升级程序,多平台多文件多版本,如果是自己架构文件服务器带宽肯定不能满足业务需求,于是上手百度云存储BCS服务,现在使

  • python urllib爬取百度云连接的实例代码

    翻看自己以前写的程序,发现写过一个爬取盘多多百度云资源的东西,完全是当时想看变形金刚才自己写的,而且当时第一次接触python大概写了有2天才搞出来这个程序,学习python语言,可以看得出来那时候的代码写的真的low.虽然现在也不怎么样,哈哈,一直学习中,不做过多解释,上图上代码,因为变量的声明是什么我自己也忘了(手动傲娇),连写入文件当时都不会哈哈哈哈哈哈哈哈,也不知道class中可以通过init初始化,唉学习python原来我学到了这么多东西,感谢python from bs4 impor

  • python利用百度云接口实现车牌识别的示例

    一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开始准备使用百度云文字识别C++ SDK来做,发现需要准备curl.jsoncpp和OpenCV,并且curl和jsoncpp需要自己编译,很麻烦,所以换用了python来做,真的是顺畅简单. 1. 安装python环境(我用python3.7) python官网下载地址:https://www.py

随机推荐