多平台统一管理软件接口,如何实现多平台统一管理软件接口
315
2023-01-18
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 = http://"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
// 遍历所有的响应头字段
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();
}
}
import java.util.HashMap;
import java.util.Iterator;
import org.json.JSONArray;
import org.json.JSONObject;
import com.baidu.aip.ocr.AipOcr;
/**
* 测试百度云OCR的文字识别功能
* 打开百度云AI的官网:
* https://console.bce.baidu.com/ai/?_=1517288853048#/ai/ocr/overview/index
*/
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
// 是否定位单字符位置,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
while(iterator.hasNext()){
Object value = iterator.next();
JSONObject obj = new JSONObject(value.toString());
System.out.println(obj.get("words"));
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~