java - 使用 AEM 进行 GCP 标签检测返回 400 响应
问题描述
我正在尝试对 aem 资产使用 Google 云视觉标签检测。我正在通过以下方式将资产转换为输入流:
AssetManagerassetMgr = resolver.adaptTo(AssetManager.class);
资产 myAsset = assetMgr.getAsset(payload);再现 myRen = myAsset.getRendition(payload + Constants.originalRendition); InputStream 是 = myRen.getStream();
获得流媒体后,我以这种方式点击服务
但我得到以下回复:
{ "code" : 400, "errors" : [ { "domain" : "global", "message" : "请求必须指定图像和特征。", "reason" : "badRequest" } ], "message" : "请求必须指定图像和特征。", "status" : "INVALID_ARGUMENT" }
以同样的方式为谷歌人脸检测创建 InputStream 工作正常。
解决方案
IOUtils.toByteArray()
您似乎正在使用该方法将图像转换为字节流。由于用于检测标签的代码与检测人脸的代码非常相似,除了将图像转换为字节流的部分,并且您说可以很好地检测人脸,我会尝试使用该类转换图像ByteString
. 此类在此处用于检测标签的文档中的代码示例中使用。
推荐阅读
- graphics - 我有一个带有矩形的图像,如何找到 4 个角的边界坐标。如何识别每个矩形/正方形并找到它的坐标?
- typescript - 我可以定义一个作为枚举和函数的打字稿变量吗?
- react-native - 我应该怎么做才能在 Google Playstore 上上传 React Native CLI Released APK?
- python - 在多列中选择两列
- python - 如何在 matplotlib 中使用“blit”编写可以使用“拖动”移动查看图像不同部分的程序
- javascript - Node.js TypeError:无法读取未定义的属性“主机”
- java - 测试 Java Spring @Scheduled 功能
- java - Eclipse 应用程序运行配置到 intellij
- javascript - AWS Lambda 函数不是第一次发送消息,而是发送每条后续消息
- amazon-web-services - 如何通过 aws 胶水作业从本地 oracle 服务器上的 JDBC 数据库访问视图?