【问题标题】:Google Cloud Vision API : "error code: 3" , "message": "Bad image data."Google Cloud Vision API : "error code: 3" , "message": "Bad image data."
【发布时间】:2018-08-07 21:47:37
【问题描述】:

我正在尝试 POST HTTP 请求以检测从 mat 图像转换为 base64 的图像中的文本。当我运行代码时,我得到了

{
   "responses":[
      {
         "error":{
            "code":3,
            "message":"Bad image data."
         }
      }
   ]
}

我的 curl POST 字段是这样的 JSON 字符串:

{
   "requests":[
      {
         "image":{
            "content":"lZ+elp+elp+elp+elZ+elZ6dlZ6dlZ6dlJ6dlJ2ck52ck52ck52ck52ck52bk5ybkpyakpyakpyakZuZkJqYj5m...........srW0srWzsrWzsrWzsrWz"
         },
         "features":[
            {
               "type":"TEXT_DETECTION"
            }
         ]
      }
   ]
}

我不确定 base64 编码的图像是否有效。请帮忙!

【问题讨论】:

  • 您的请求正文结构很好。问题出在 Base64 字符串上。它可能转换错误,或者您可能粘贴错误。您可以将字符串重新转换为图像以进行仔细检查。你可以使用这个site。请记住these 是支持的图像格式,并且有 20MB 的大小限制。
  • 无论如何您都可以尝试 Vision API Drag and Drop 或尝试使用不同图像格式的 API。

标签: json base64 google-cloud-vision curlpp


【解决方案1】:

我通过将 Mat 对象转换为向量然后进行编码找到了解决方案。

std::vector<uchar> array;
cv::imencode(".png",mat_img, array);


std::string encoded = Base64::encode(array);

【讨论】:

    猜你喜欢
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多