Alibaba Cloud API デバッグツール OpenAPI エクスプローラー は、OpenAPI ドキュメント、API デバッグ、および SDK の例を提供し、API 開発を迅速に開始できるようにします。このトピックでは、C++ 用の Intelligent Media Management(IMM)SDK をインストールして使用する方法について説明します。
前提条件
AccessKey ペアが作成され、取得されています。詳細については、「AccessKey ペアを作成する」をご参照ください。
OSS が有効化され、バケットが作成され、オブジェクトがバケットにアップロードされています。詳細については、「オブジェクトをアップロードする」をご参照ください。
IMM が有効化されています。詳細については、「IMM を有効化する」をご参照ください。
IMM コンソールでプロジェクトが作成されています。詳細については、「プロジェクトを作成する」をご参照ください。
説明CreateProject オペレーションを呼び出して、プロジェクトを作成できます。詳細については、「CreateProject」をご参照ください。
ListProjects オペレーションを呼び出して、特定のリージョンにある既存のプロジェクトをクエリできます。詳細については、「ListProjects」をご参照ください。
SDK のインストール
IMM API V2020-09-30 を使用するには、IMM SDK V2020-09-30 をインストールする必要があります。
C++ 用 IMM SDK の使用方法については、「クイックスタート」をご参照ください。
手順
次のサンプルコードは、C++ 用 IMM SDK を使用して、中国 (杭州) リージョンの画像内の顔と顔情報を検出する方法の例を示しています。
次のサンプルコードを使用する場合は、ドメイン名を IMM プロジェクトが存在するリージョンのドメイン名に置き換えてください。 IMM プロジェクトと OSS オブジェクトが同じリージョンに存在することを確認してください。
#include <cstdlib>
#include <iostream>
#include <string>
#include <alibabacloud/core/AlibabaCloud.h>
#include <imm/ImmClient.h>
using namespace std;
using namespace AlibabaCloud;
using namespace AlibabaCloud::Imm;
int main( int argc, char** argv )
{
AlibabaCloud::InitializeSdk();
// プロジェクトが存在するリージョンの ID を指定します。
AlibabaCloud::ClientConfiguration configuration( "cn-hangzhou" );
// Alibaba Cloud アカウントの AccessKey ペアは、すべての API オペレーションに対する権限を持っています。 RAM ユーザーを使用して API オペレーションを呼び出したり、日常的な O&M を実行することをお勧めします。
// AccessKey ID と AccessKey シークレットをプロジェクトコードに保存しないことをお勧めします。 そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースがリスクにさらされる可能性があります。
// この例では、システムは環境変数から AccessKey ペアを読み取り、API アクセスのための認証を実装します。
const char *AccessKeyId = std::getenv("AccessKeyId");
const char *AccessKeySecret = std::getenv("AccessKeySecret");
AlibabaCloud::Credentials credential( AccessKeyId, AccessKeySecret );
ImmClient client( credential, configuration );
Model::DetectImageFacesRequest request;
// IMM プロジェクトの名前を指定します。
request.setProjectName("immtest");
// OSS イメージの URI を指定します。
request.setSourceURI("oss://test-bucket/test-object.jpg");
// リクエストを開始します。
auto outcome = client.detectImageFaces( request );
if ( !outcome.isSuccess() )
{
std::cout << outcome.error().errorCode() << std::endl;
AlibabaCloud::ShutdownSdk();
return(-1);
}
std::cout << "totalCount: " << outcome.result().getTotalCount() << std::endl;
AlibabaCloud::ShutdownSdk();
return 0;
}