-1

我在使用 Amazon aws-cpp-sdk时遇到 Index_Faces问题。我在以下程序中遇到分段错误。

Image *fileData;

Image& imageToBytes(const char* str)
{
    FILE *fp;
    size_t length = 0;

    fp= fopen(str, "rb");
    if(fp == NULL)
    {
        exit(0);
    }
    fseek(fp, 0, SEEK_END);
    length= ftell(fp);
    rewind(fp);
    fileData= (Image*)malloc((length+1)*sizeof(char));
    fread(fileData, length, 1, fp);
    return *fileData;
}

int main()
{
   Aws::SDKOptions options;

   Aws::InitAPI(options);
   {
       RekognitionClient *rekClient = new RekognitionClient();
       CreateCollectionRequest *clRequest = new CreateCollectionRequest();

       CreateCollectionRequest str = clRequest->WithCollectionId("collection7981");

       CreateCollectionOutcome respose = rekClient->CreateCollection(str);
       std::cout<<"Collection Successfully Created..."<<std::endl;

       IndexFacesRequest iFaceRequest;

       iFaceRequest.WithImage(imageToBytes("/home/msc/Profile_Pics/ms.JPG"));

   }
   Aws::ShutdownAPI(options);
   return 0;
}

那么,如何从我的本地系统向亚马逊 aws-cpp-sdk 提供图像文件?

4

1 回答 1

3

你不能用malloc(实际上你可以,但你需要在之后调用构造函数)创建 c++ 类。您需要new改用它为您调用构造函数。

在 aws-cpp-sdk 中有 4 个不同的类称为“Image”,它们都不适合直接传递给fread.

于 2018-03-23T07:47:06.340 回答