首页 > 解决方案 > Microsoft Vision Api - VisionServiceException:执行 POST 请求时出错!收到错误代码:400

问题描述

我正在使用 Microsoft vision api 从图像中读取文本。它适用于我的三星手机(操作系统:Android M)、联想 K4 Note(操作系统:Android M)。

我还有一部夏普 AQUOS(操作系统:牛轧糖)的手机。在这款手机中,文本识别失败。视觉 api 返回此异常,

VisionServiceException:执行 POST 请求时出错!收到错误代码:400

有人遇到过这个问题吗?请建议我一个解决方案。

我的代码在下面给出。

Bitmap bitmap = CustomCameraStore.getInstance().getBitmap1();
        ByteArrayOutputStream output = new ByteArrayOutputStream(bitmap.getByteCount());
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, output);
        ByteArrayInputStream inputStream = new ByteArrayInputStream(output.toByteArray());

        OCR ocr = visionClient.recognizeText(inputStream, LanguageCodes.AutoDetect, true);
        String result = gsonObject.toJson(ocr);

标签: android

解决方案


我找到了我的问题的原因。此异常是由于我发布到视觉 api 的图像尺寸过大而引起的。我在这个博客的帮助下达到了这一点,下面给出了链接, https://westus.dev.cognitive.microsoft.com/docs/services/56f91f2d778daf23d8ec6739/operations/56f91f2e778daf14a499e1fc

我降低了压缩位图的质量变量。下面显示代码。

Bitmap bitmap = CustomCameraStore.getInstance().getBitmap1();
        ByteArrayOutputStream output = new ByteArrayOutputStream(bitmap.getByteCount());
        bitmap.compress(Bitmap.CompressFormat.JPEG, 70, output);
        ByteArrayInputStream inputStream = new ByteArrayInputStream(output.toByteArray());

        OCR ocr = visionClient.recognizeText(inputStream, LanguageCodes.AutoDetect, true);
        String result = gsonObject.toJson(ocr);

在没有任何评论的情况下否决了这个问题真的很可悲。无论如何不用担心。我将这个答案提供给任何可能有帮助的人。


推荐阅读