公司内部为了监控员工健康码状态,要求系统自动识别员工上传的健康码和行程码,并且将情况通知到对应的人员进行后续跟踪。做了如下研究,后续会用到公司系统中(公司内部也基于python3.9、opencv4.5研发了自动识别系统),这边文章基于腾讯云的OCR文字识别。
前面的流程

点击调试后,可以看到相关信息。
下面我就直接上代码了。
-
-
com.tencentcloudapi -
tencentcloud-sdk-java-ocr -
3.1.572 -
- public class RecognizeHealthCodeOCRTest
- {
- //填你创建的密钥
- private static String secretId = "XXX";
- private static String secretKey = "XXX";
-
- public static void main(String [] args) {
- try{
- // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
- // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
- Credential cred = new Credential(secretId, secretKey);
- // 实例化一个http选项,可选的,没有特殊需求可以跳过
- HttpProfile httpProfile = new HttpProfile();
- httpProfile.setEndpoint("ocr.tencentcloudapi.com");
- // 实例化一个client选项,可选的,没有特殊需求可以跳过
- ClientProfile clientProfile = new ClientProfile();
- clientProfile.setHttpProfile(httpProfile);
- // 实例化要请求产品的client对象,clientProfile是可选的
- OcrClient client = new OcrClient(cred, "ap-beijing", clientProfile);
-
- // 实例化一个请求对象,每个接口都会对应一个request对象
- RecognizeHealthCodeOCRRequest req = new RecognizeHealthCodeOCRRequest();
- byte[] bytes = Files.readAllBytes(Paths.get("C:\\Users\\asus\\Desktop\\沐妍教育\\微信图片_20220820224439.jpg"));
- req.setImageBase64(Base64.getEncoder().encodeToString(bytes));
-
- // 返回的resp是一个RecognizeHealthCodeOCRResponse的实例,与请求对象对应
- RecognizeHealthCodeOCRResponse resp = client.RecognizeHealthCodeOCR(req);
-
- // 输出json格式的字符串回包
- System.out.println(RecognizeHealthCodeOCRResponse.toJsonString(resp));
- }
- catch (TencentCloudSDKException e) {
- System.out.println(e.toString());
- }
- catch (IOException e) {
- System.out.println(e.toString());
- }
- }
- }
跑的结果就不展示了...
行程码识别与这类似