0

cURLを使用してAmazonS3からデータにアクセスするための複数のC++ライブラリがあることを認識しています。それらを使用して、ローカルマシンにイメージをダウンロードし、OpenCVに読み込んで、元のファイルを削除できます。

しかし、Matオブジェクトのように、S3からOpenCVに直接画像を読み取ることができるかどうか疑問に思いました。

誰かが私がこれを達成するのを手伝ってくれるでしょうか?

4

2 に答える 2

2

cv :: imdecodeを使用します。これにより、画像データ(png、jpegなど)を含むバッファーがメモリからマトリックスにロードされます。

// Suppose that a std::vector<char> contains the data loaded by Curl.
std::vector<char> data;
// The template<typename T> explicit cv::Mat::Mat(const std::vector<T>& vec)
// constructor gives this vector a cv::Mat header.
cv::Mat data_mat(data);
// Now use cv::imdecode to decode the image to a BGR matrix.
cv::Mat image(cv::imdecode(data_mat));
于 2012-07-08T15:14:51.037 に答える
0

だから、それのポコ側が行く限り、これは私がしなければならなかったことです。

std::auto_ptr<std::istream> pStr(URIStreamOpener::defaultOpener().open(uri)); StreamCopier::copyToString(*pStr.get(), str);

strこれにより、中間ストレージなしで、提供されたURIから文字列に画像が取得されます。残りはクリストフが説明した通りです。

于 2012-07-11T22:49:29.197 に答える