C ++ | Как отправить изображения с камеры OpenCV на сервер Rails с помощью curlpp - PullRequest
0 голосов
/ 13 марта 2020

У меня есть изображение, снятое с камеры, и я уже могу сохранить изображение как локальный файл.

cv::Mat croppedImage = .....;

Я также могу отправить простые данные в мой Rails API с помощью curlpp:

std::stringstream response;
curlpp::Easy request;

std::list<std::string> header;
header.push_back("Content-Type: application/json");

std::time_t t = std::time(0);
std:string body = "";

std::string encoded = "testing1.jpg";
ostringstream os;
os << "[URL]/api/v1/faces?api_key=&person_id=" << "&timestamp=" << t << "&area_id=2&image_path=" << encoded;
string url = os.str();

request.setOpt( new curlpp::options::Url( url ) );
request.setOpt(new curlpp::options::HttpHeader(header));
request.setOpt(new curlpp::options::PostFields(body));
request.setOpt(new curlpp::options::PostFieldSize(body.length()));
request.setOpt( new curlpp::options::WriteStream( &response ) );

request.perform();
std::cout << response.str();

Однако я не смог отправить изображение. Должен ли я преобразовать изображение в base64, а затем отправить на сервер? Мне нужно сохранить это изображение в AWS S3 в бэкэнде после того, как API получил изображение.

Я видел некоторые темы, в которых мы можем отправить данные изображения в качестве тела запроса POST с помощью curlpp. Но я не уверен, как после этого обрабатывать данные изображения на моем API бэкэнда.

...