2016-10-17 5 views
0

Google Cloud Vision APIの新機能で、支配的な色の機能を使用して画像から色を抽出します。以下Terrence Ryan's BlogGoogle Cloud Vision IMAGE_PROPERTIESは、どの画像でも、maxResultsパラメータの値に関係なく、10色の結果を返します。

$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ドキュメントには何も言われていないので、ここにいる皆さんが経験したことがあるのだろうかと思っていました。

答えて

0

私はこれを自分で試しましたが、私は同じ結果を得ました。 LABEL_DETECTIONを実行して結果を1に制限すると、1つの結果が得られます。 IMAGE_PROPERTIESを選択し、maxResultsを減らしても結果には影響しないようです。

色数の少ない小さな画像で試してみましたが、結果は6件しかありませんでした。 結果はこのように構成されています

  { 
       "color": { 
       "red": 198, 
       "green": 218, 
       "blue": 199 
       }, 
       "score": 0.0016616513, 
       "pixelFraction": 0.0016666667 
      } 

私の推測では、彼らが他の結果をドロップスコアのカットオフポイントを持っています。

好奇心の邪魔をして、なぜこの多くを抽出したいのですか支配的な色?これは画像からすべての色を抽出するためのものではありません。これは達成したいことですか?

+0

私は、彼らは私が色を抽出し、色のユーザーの選択に追加しますれた画像、または別のWebページのさえスクリーンショットをアップロードすることができ、自分のWebページのテーマの色を選択する上で、私のユーザーを支援するアプリケーションを作成していますカラーホイール/ピッカーを与えるだけではありません。事は、ときどき明白な色が返されたり検出されないことがあります。例では、Facebookのログインページと偶数ページの全体のバナーであることで色の青を持っていないAPIのレスポンスのスクリーンショットです。 –

関連する問題