package com.javaweb.third.baidu.api;
|
|
|
|
import com.javaweb.third.baidu.util.Base64Util;
|
import com.javaweb.third.baidu.util.FileUtil;
|
import com.javaweb.third.baidu.util.HttpUtil;
|
|
import java.net.URLEncoder;
|
|
/**
|
* 文字识别
|
* @author wujiyue
|
*/
|
public class OcrAPI extends BaiduAi{
|
|
private static final String URL_general_basic="https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic";//通用文字识别
|
private static final String URL_idcard="https://aip.baidubce.com/rest/2.0/ocr/v1/idcard";//身份证字体识别
|
private static final String URL_bankcard="https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard";
|
private static final String URL_driving_license="https://aip.baidubce.com/rest/2.0/ocr/v1/driving_license";
|
private static final String URL_license_plate="https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate";//车牌号识别
|
private static final String URL_number="https://aip.baidubce.com/rest/2.0/ocr/v1/numbers";
|
private static final String URL_qrcode="https://aip.baidubce.com/rest/2.0/ocr/v1/qrcode";
|
private static final String URL_excel_request="https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request";
|
private static final String URL_excel_get_request_result="https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/get_request_result";
|
|
/**
|
* 通用文字识别
|
* @param path
|
* @return
|
*/
|
public static String general_basic(String path){
|
try {
|
byte[] imgData = FileUtil.readFileByBytes(path);
|
String imgStr = Base64Util.encode(imgData);
|
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
|
String result = HttpUtil.post(URL_general_basic, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
//身份证字体识别
|
public static String idcardOcr(String path,Boolean isBackGround){
|
try {
|
byte[] imgData = FileUtil.readFileByBytes(path);
|
String imgStr = Base64Util.encode(imgData);
|
// 识别身份证正面id_card_side=front;识别身份证背面id_card_side=back;
|
String params = "";
|
if(isBackGround){
|
params += "id_card_side=back&" ;
|
}else{
|
params += "id_card_side=front&" ;
|
}
|
params += URLEncoder.encode("image", "UTF-8") + "="+ URLEncoder.encode(imgStr, "UTF-8");
|
|
String result = HttpUtil.post(URL_idcard, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
//银行卡识别
|
public static String bankCardOcr(String path){
|
|
try {
|
byte[] imgData = FileUtil.readFileByBytes(path);
|
String imgStr = Base64Util.encode(imgData);
|
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
|
String result = HttpUtil.post(URL_bankcard, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
public static String drivingLicenseOcr(String path){
|
try {
|
byte[] imgData = FileUtil.readFileByBytes(path);
|
String imgStr = Base64Util.encode(imgData);
|
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
|
String result = HttpUtil.post(URL_driving_license, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
//车牌号识别
|
public static String license_plateOcr(String path){
|
try {
|
byte[] imgData = FileUtil.readFileByBytes(path);
|
String imgStr = Base64Util.encode(imgData);
|
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
|
String result = HttpUtil.post(URL_license_plate, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
//数字识别(额外申请权限)
|
protected static String numberOcr(String path){
|
try {
|
byte[] imgData = FileUtil.readFileByBytes(path);
|
String imgStr = Base64Util.encode(imgData);
|
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
|
String result = HttpUtil.post(URL_number, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
//二维码识别(额外申请权限)
|
protected static String qrcode(String path){
|
try {
|
byte[] imgData = FileUtil.readFileByBytes(path);
|
String imgStr = Base64Util.encode(imgData);
|
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
|
String result = HttpUtil.post(URL_qrcode, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
//表格文字识别(异步接口)
|
//1.请求接口
|
protected static String excel_request(String path){
|
try {
|
byte[] imgData = FileUtil.readFileByBytes(path);
|
String imgStr = Base64Util.encode(imgData);
|
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
|
String result = HttpUtil.post(URL_excel_request, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
/**
|
* 2.获取请求结果
|
* @param request_id
|
* @param resultType excel:返回生成的excel的网络地址 json:返回json数据
|
* @return
|
*/
|
protected static String excel_get_request_result(String request_id,String resultType){
|
try {
|
String params = "request_id=" + request_id+"&result_type="+resultType;//result_type默认为excel返回excel生成地址
|
String result = HttpUtil.post(URL_excel_get_request_result, getAccessToken(), params);
|
return result;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
public static void main(String[] args){
|
/*String path="C:\\Users\\Administrator\\Desktop\\id.jpg";
|
String s=idcardOcr(path,false);
|
System.out.println(s);*/
|
/*String path="C:\\Users\\Administrator\\Desktop\\bank2.jpg";
|
String s=bankCardOcr(path);
|
System.out.println(s);*/
|
|
/*String path="C:\\Users\\Administrator\\Desktop\\drive.jpeg";
|
String s=drivingLicenseOcr(path);
|
System.out.println(s);*/
|
/*String path="C:\\Users\\Administrator\\Desktop\\plate.png";
|
String s=license_plateOcr(path);
|
System.out.println(s);*/
|
/* String path="C:\\Users\\Administrator\\Desktop\\num.jpg";
|
String s=numberOcr(path);
|
System.out.println(s);*/
|
|
/* String path="C:\\Users\\Administrator\\Desktop\\sex.jpg";
|
String s=qrcode(path);
|
System.out.println(s);*/
|
|
// String path="C:\\Users\\Administrator\\Desktop\\excel.jpg";
|
// String request_id=excel_request(path);
|
// System.out.println(request_id);
|
// String s=excel_get_request_result("11394947_336225","excel");
|
// System.out.println(s);
|
String path="C:\\Users\\Administrator\\Desktop\\2.jpg";
|
String res=general_basic(path);
|
System.out.println(res);
|
}
|
}
|