【问题标题】:Image size is too small Azure Face API Android图片尺寸太小 Azure Face API Android
【发布时间】:2018-08-29 12:15:47
【问题描述】:

我正在尝试在 android 上使用 Azure Face API。我正在从设备摄像头捕获图像,然后将其转换为 InputStream 以发送到检测方法。我不断收到错误“com.microsoft.projectoxford.face.rest.ClientException:图像尺寸太小”

我查看了文档,图像大小为 1.4Mb,在 1Kb-4Mb 范围内。我不明白为什么它不起作用。

Bitmap bitmap = cameraKitImage.getBitmap();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
bitmapdata = bos.toByteArray();

new FaceTask().execute(new ByteArrayInputStream(bitmapdata));

Face[] faces = faceServiceClient.detect(inputStreams[0], true, false, null);

【问题讨论】:

  • 这似乎与我见过的其他编码示例相匹配。您是否已确认您从 cameraKitImage 获得了有效的图像数据?如果你使用 CompressFormat.JPEG,它仍然会失败吗?
  • 是的,我尝试使用 JPEG 格式。我什至尝试缩放图像以增加大小。是的,我将图像转换为实际图像文件并打开,它是正确的。
  • 感谢保存到文件并检查图像!我不知道API,只是大声思考,但是inputStreams[0] 指的是什么?如果它是ByteArrayInputStreams 的数组,并且第一个/唯一元素是由FaceTask().execute(...) 填充的,这是时间问题吗? (各种位的命名表明.execute() 可能发生在后台。
  • inputStreams[0] 是 ByteArrayInputStream 的一个实例。是的,此任务是使用 AsyncTask 在后台执行的。我之前在另一个应用程序中使用过检测方法,从未遇到过这个问题。我将如何解决时间问题,因为我不确定是否是。
  • 这个问题还没有答案吗?有人找到解决方案了吗?

标签: android azure microsoft-cognitive face-api


【解决方案1】:

不知何故,您的文件被压缩超过 1Kb,或者实际大小已经很小。尝试将其保存在 drawable 或 assets 文件夹中的某个位置,然后在输入流中打开它。

【讨论】:

    猜你喜欢
    • 2016-06-08
    • 2018-12-28
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多