Интеграция распознавания изображений PHP / cURL с помощью сервиса Imagga - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь получить теги изображений из распознавания изображений Imagga (служба искусственного интеллекта, новая версия V2) с использованием cURL и PHP.

Мне удалось получить действительный ответ, ответ тела cURL выглядит следующим образом:

{
"result":{
    "tags":[
        {"confidence":100,"tag":{"en":"pink"}},
        {"confidence":92.6405181884766,"tag":{"en":"petal"}},
        {"confidence":69.8676071166992,"tag":{"en":"flower"}},
        {"confidence":54.1640663146973,"tag":{"en":"bloom"}}
        ]
        }
,"status":{"text":"","type":"success"}
}

Я пытался использовать теги, но у меня возникли проблемы.

 $response = curl_exec($curl);

 $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
 $body = substr($response, $header_size);
 $header = substr($response, 0, $header_size);
 $rows = explode("\n", $header);

 $err = curl_error($curl);

 curl_close($curl);
 $resp = json_decode( $body, true );

 if ($err) {echo $err; } else {
     // foreach thought tags, and if tag confidence is above 60, than echo it, do something with it...
 }

Как отобразить некоторые теги, если достоверность тегов выше 60?

1 Ответ

0 голосов
/ 19 ноября 2018

просто используйте foreach

<?php
$body = '{
"result":{
    "tags":[
        {"confidence":100,"tag":{"en":"pink"}},
        {"confidence":92.6405181884766,"tag":{"en":"petal"}},
        {"confidence":69.8676071166992,"tag":{"en":"flower"}},
        {"confidence":54.1640663146973,"tag":{"en":"bloom"}}
        ]
        }
,"status":{"text":"","type":"success"}
}';


$resp = json_decode( $body, true );

foreach ($resp['result']['tags'] ?? $tags as $tag) {
    if (
        ($confidence = $tag['confidence'] ?? null) 
        && $confidence >= 60 
        && ($tagName = $tag['tag']['en'] ?? null)
    ) {
        echo $tagName . "\r\n";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...