5

我是 Google Cloud Vision API 的新手。我主要针对账单和收据对图像进行 OCR。

对于一些图像,它工作正常,但是当我尝试其他一些图像时,它给了我这个错误:

Error:  { [Error: Request Admission Denied.]
  code: 400,
  errors:
   [ { message: 'Request Admission Denied.',
       domain: 'global',
       reason: 'badRequest' } ] }

这是我的代码:

// construct parameters
const req = new vision.Request({
image: new vision.Image('./uploads/reciept.png'),
features: [
new vision.Feature('TEXT_DETECTION', 1)
]
})

vision.annotate(req).then((res) => {
// handling response
//console.log(res.responses[0].textAnnotations);
var desc=res.responses[0].textAnnotations;
var descarr=[];
for (i = 0; i < desc.length; i++) { 
descarr.push(desc[i].description);
}
4

4 回答 4

6

也遇到了这个问题。这是一个图像大小问题。我不知道硬限制是什么。4MB 有效,但 9MB 没有,介于两者之间。

于 2016-06-30T19:47:31.680 回答
1

最佳实践文档说图像文件大小不应超过 4 MB 。根据上面的回复,这可能是问题所在。

于 2016-08-16T14:05:27.817 回答
1

我可以通过将图像另存为另一种格式并提交来解决此问题;图像文件本身存在“错误”(或者至少是谷歌意想不到的)。不确定您使用的语言(js?)中的图像操作,但在 Python 中它很简单:

from PIL import Image
bad_image = Image.open(open('failure.jpg', 'rb'))
bad_image.save(open('success.png', 'wb'))
于 2016-06-15T21:57:00.360 回答
0

有趣的。我今天使用 Google 的 Java 客户端遇到了同样的问题。我阅读詹姆斯的答案的方式是,他有一个失败的 JPEG 文件,但可以作为 PNG 文件使用。就我而言,我有一个失败的 PNG 文件,但可以作为 JPEG 文件使用。

我已经得出结论,这是一个大小限制,因为我希望 JPEG 通常比 PNG 小;然而,詹姆斯的经验表明并非如此。

我在 Google 的 Javadocs 中找不到任何相关文档。由于响应是 400 错误,可能是 Java 库没有正确编码图像缓冲区。

于 2016-06-24T18:09:17.670 回答