Google Cloud Vision API: код ошибки: 3, сообщение: Неверные данные изображения.

Я пытаюсь отправить HTTP-запрос POST для обнаружения текста в изображениях, преобразованных в 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 является допустимым. Пожалуйста помоги !


person nocturnal_abu    schedule 07.08.2018    source источник
comment
Структура тела вашего запроса в порядке. Проблема в строке Base64. Он может быть преобразован неправильно или вы можете вставить его с ошибкой. Можете ли вы преобразовать строку в изображение, чтобы перепроверить. Вы можете использовать этот сайт. Имейте в виду, что это поддерживаемые форматы изображений, размер которых ограничен 20 МБ.   -  person Yurci    schedule 08.08.2018
comment
В любом случае вы можете попробовать Vision API Drag and Drop или попробовать API с другим форматом изображения.   -  person Yurci    schedule 08.08.2018


Ответы (1)


Я нашел решение, преобразовав объект Mat в вектор, а затем закодировав.

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


std::string encoded = Base64::encode(array);
person nocturnal_abu    schedule 10.08.2018