开发者社区 > 视觉智能 > 文字识别 > 正文

有完整的java代码调用OCR的PredictModel的示例吗?

有完整的java代码调用OCR的PredictModel的示例吗?我知道问题了,我传的content放的是pdf文件链接就一直报错,换成身份证的图片链接就能识别了,接口还是不能传pdf文件链接啊。

展开
收起
三分钟热度的鱼 2023-06-24 11:19:34 48 0
4 条回答
写回答
取消 提交回答
  • import com.alibaba.fastjson.JSON; import okhttp3.*;

    import java.io.File; import java.io.IOException;

    public class OCRPredictionExample { public static void main(String[] args) { // 你的OCR Predict Model的REST API地址 String apiUrl = "http://api.example.com/ocr-predict";

    // 图像文件路径 String imagePath = "path/to/your/image.jpg";

    try { // 创建HTTP客户端 OkHttpClient client = new OkHttpClient();

    // 创建请求体 RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("image", new File(imagePath).getName(), RequestBody.create(MediaType.parse("image/jpeg"), new File(imagePath))) .build();

    // 创建请求 Request request = new Request.Builder() .url(apiUrl) .post(requestBody) .build();

    // 发送请求并获取响应 Response response = client.newCall(request).execute();

    // 处理响应 if (response.isSuccessful()) { String responseBody = response.body().string(); // 解析JSON响应 OCRResult ocrResult = JSON.parseObject(responseBody, OCRResult.class); // 处理OCR识别结果 // ... } else { // 处理请求失败 // ... } } catch (IOException e) { e.printStackTrace(); } } }

    // 定义OCR结果的数据结构 class OCRResult { // 根据实际响应的JSON结构定义对应的字段 // ... }

    请注意,上述示例代码假设你已经获得了OCR Predict Model的REST API地址,并将其存储在apiUrl变量中。你需要替换为你自己的API地址。此外,还需提供有效的图像文件路径,将其存储在imagePath变量中。

    这个示例代码使用了OkHttp库来发送HTTP请求,并使用FastJSON库解析响应的JSON结果。你可以根据你自己的需求选择合适的HTTP客户端和JSON解析库。

    希望这个示例对你有所帮助!如有进一步的疑问,请随时提问。

    2023-06-25 23:51:49
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    是的,阿里云OCR接口目前不支持直接传递PDF文件链接进行识别,只能支持传递图片链接进行识别。

    以下是一个使用Java代码调用阿里云OCR的Predict API(预测接口)进行身份证识别的示例:

    import com.aliyun.tea.*;
    import com.aliyun.ocr.*;
    
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    public class OCRPredictExample {
    
        public static void main(String[] args) throws IOException {
            // 配置AccessKey和SecretKey
            Config config = new Config()
                    .setAccessKeyId("<your-access-key>")
                    .setAccessKeySecret("<your-access-key-secret>");
    
            // 创建客户端
            OcrClient client = new OcrClient(config);
    
            // 构造请求参数
            Map<String, String> bodyParams = new HashMap<>();
            bodyParams.put("imageURL", "<your-image-url>");
            bodyParams.put("predictType", "ocr_id_card");
    
            // 发起接口请求
            PredictOcrIdCardResponse response = client.predictOcrIdCard(bodyParams);
    
            // 解析返回结果
            if (response.isSuccess()) {
                OcrIdCardResult result = response.getBody();
                System.out.println("姓名:" + result.name());
                System.out.println("性别:" + result.gender());
                System.out.println("民族:" + result.nationality());
                System.out.println("出生日期:" + result.birthDate());
                System.out.println("住址:" + result.address());
                System.out.println("公民身份号码:" + result.idNumber());
            } else {
                System.out.println("识别失败,错误信息:" + response.getMessage());
            }
    
            // 关闭客户端
            client.close();
        }
    }
    

    在上述代码示例中,你需要将<your-access-key><your-access-key-secret>替换为你自己的阿里云账号的AccessKey和SecretKey。同时,需要将<your-image-url>替换为要识别的身份证图片的链接。

    以上示例仅供参考,请根据你的具体需求进行适当的修改和调整。

    如果你需要识别PDF文件,你可以先通过其他方式将其转换为图片格式(如JPEG、PNG等),然后再传递图片链接进行识别。

    2023-06-25 08:05:14
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    以下是一个使用Java调用OCR PredictModel的示例代码:

    java import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; import org.json.JSONObject;

    import java.io.IOException;

    public class OCRPredictModelExample { public static void main(String[] args) { String apiUrl = "OCR_API_URL"; String apiKey = "YOUR_API_KEY"; String imageUrl = "IMAGE_URL";

        OkHttpClient client = new OkHttpClient();
    
        // 构建请求体
        JSONObject jsonBody = new JSONObject();
        jsonBody.put("content", imageUrl);
    
        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), jsonBody.toString());
    
        // 构建请求
        Request request = new Request.Builder()
                .url(apiUrl)
                .addHeader("Content-Type", "application/json")
                .addHeader("API-Key", apiKey)
                .post(requestBody)
                .build();
    
        try {
            // 发送请求
            Response response = client.newCall(request).execute();
    
            if (response.isSuccessful()) {
                String responseBody = response.body().string();
                JSONObject jsonResponse = new JSONObject(responseBody);
    
                // 解析响应结果
                System.out.println(jsonResponse);
            } else {
                System.out.println("OCR请求失败");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    } 请注意,上述代码中的OCR_API_URL、YOUR_API_KEY和IMAGE_URL需要替换为您实际使用的OCR接口的URL、API密钥和图片的URL。确保您已经导入了OkHttp库,并且替换了正确的参数后,即可运行上述代码来调用OCR PredictModel。

    关于PDF文件的识别问题,您提到的接口不能直接传递PDF文件链接,这可能是接口的限制。您可以尝试将PDF文件转换为图片(如PNG或JPEG格式),然后传递图片链接进行识别。或者,您可以查看接口的文档或联系接口提供商,了解是否支持直接识别PDF文件。

    2023-06-24 14:16:10
    赞同 展开评论 打赏
  • 接口没有问题,其他客户调用是成功的。建议选择更快速的网络或者更换文件URL存储位置。网关一般10s会超时,一般下载应该在1s上下才行。此回答整理自钉群“【官方】阿里云OCR文档自学习用户答疑群”

    2023-06-24 11:22:40
    赞同 展开评论 打赏

文字识别技术可以灵活应用于证件文字识别、发票文字识别、文档识别与整理等行业场景,满足认证、鉴权、票据流转审核等业务需求。

热门讨论

热门文章

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载