地质所 沉降监测网建设项目
chenhuan
2024-05-16 0fdd42e318f51f9e3c6581473416af1cca69877f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
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);
    }
}