私は Google Cloud Vision API を初めて使用し、ドミナント カラー機能を使用して画像から色を抽出したいと考えていました。以下はTerrence Ryan のブログに基づいた私のコードです
$cvurl = "https://vision.googleapis.com/v1/images:annotate?key=API_KEY";
$data = file_get_contents($cache_job);
$base64 = base64_encode($data);
//Create this JSON
$r_json ='{
"requests": [
{
"image": {
"content":"' . $base64. '"
},
"features": [
{
"type": "IMAGE_PROPERTIES",
"maxResults": 200
}
]
}
]
}';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $cvurl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $r_json);
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ( $status != 200 ) {
die("Error: $cvurl failed status $status" );
}
コードは機能しますが、いくつか問題があります。画像には明らかに表示されているが、API 応答には含まれていない色がいくつかあります。したがって、結果の数を増やすと解決すると思いましたが、「maxResults」(Google API ドキュメント:返される結果の数) パラメーターを任意の値に変更しても、応答には何の影響もないことがわかりました。パラメータを10未満に設定しても、画像を変更しても、結果の数は10色に固定されます。Google の API ドキュメントにはそれについて何も書かれていないので、ここにいる皆さんの中に経験したことがある人がいるかどうか疑問に思っていました。