【问题标题】:Google Cloud Vision IMAGE_PROPERTIES returns 10 colors/results no matter what image and what value for maxResults parametersGoogle Cloud Vision IMAGE_PROPERTIES 返回 10 种颜色/结果,无论是什么图像以及 maxResults 参数的值是多少
【发布时间】:2016-10-18 23:05:52
【问题描述】:

我是 Google Cloud Vision API 的新手,我想使用图像的主色功能从图像中提取颜色。下面是我的代码,它基于Terrence Ryan's Blog

    $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 文档没有说明任何内容,所以我想知道你们中是否有人经历过。

【问题讨论】:

    标签: php google-cloud-vision


    【解决方案1】:

    我自己也试过了,结果是一样的。 例如,当执行 LABEL_DETECTION 并将结果限制为 1 时,我确实得到了 1 个结果。 选择 IMAGE_PROPERTIES 并减少 maxResults 似乎不会影响结果。

    我尝试了一张颜色很少的小图片,但只收到了 6 个结果。 结果的结构如下:

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

    我的猜测是他们有一个分数的截止点,他们放弃了其他结果。

    只是出于好奇,您为什么要提取这么多主色?这并不意味着从图像中提取所有颜色。这是你想要达到的目标吗?

    【讨论】:

    • 我正在创建一个应用程序,帮助我的用户为他们自己的网页主题选择颜色,他们可以上传图像甚至是另一个网页的屏幕截图,我将在其中提取颜色并将它们添加到用户的颜色选择,而不仅仅是给他们一个色轮/选择器。问题是有时甚至没有返回/检测到明显的颜色。一个例子是 Facebook 登录页面的屏幕截图,API 的响应中甚至没有蓝色,这是页面的整个横幅。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2020-01-02
    • 1970-01-01
    相关资源
    最近更新 更多