dakata__92
Super Moderator
Как мога да използвам API-то за разпознаване на изображения? Дайте примерен работещ код, че нета е пълен с ненужно инфо.
dakata__92 каза:Как мога да използвам API-то за разпознаване на изображения? Дайте примерен работещ код, че нета е пълен с ненужно инфо.
<?php
$api_key = 'моят апи ключ';
$cvurl = "https://vision.googleapis.com/v1/images:annotate?key=" . $api_key;
$type = "TEXT_DETECTION";
if (isset($_POST['submit'])) {
print $_FILES['photo']['name'].'<br>';
if(!$_FILES['photo']['error']) {
$valid_file = true;
if($_FILES['photo']['size'] > (4024000)) {
$valid_file = false;
die('Your file\'s size is too large.');
}
if($valid_file) {
//convert it to base64
$fname = $_FILES['photo']['tmp_name'];
$data = file_get_contents($fname);
$base64 = base64_encode($data);
$r_json ='{
"requests": [
{
"image": {
"content":"' . $base64. '"
},
"features": [
{
"type": "' .$type. '",
"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" );
}
echo $json_response;
}
}
else {
echo "Error";
die('Drror: '.$_FILES['photo']['error']);
}
}
?>
<form action='' method='post' enctype="multipart/form-data">
<input type='file' name='photo'>
<input type='submit' name='submit'>
</form>
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';
# Imports the Google Cloud client library
use Google\Cloud\Vision\VisionClient;
# Your Google Cloud Platform project ID
$projectId = 'YOUR_PROJECT_ID';
# Instantiates a client
$vision = new VisionClient([
'projectId' => $projectId
]);
# The name of the image file to annotate
$fileName = __DIR__ . '/resources/wakeupcat.jpg';
# Prepare the image to be annotated
$image = $vision->image(fopen($fileName, 'r'), [
'LABEL_DETECTION'
]);
# Performs label detection on the image file
$labels = $vision->annotate($image)->labels();
echo "Labels:\n";
foreach ($labels as $label) {
echo $label->description() . "\n";
}
Fakeheal каза:Стига с тоя "plain" curl. Ква е тая любов не разбирам
https://cloud.google.com/vision/docs/reference/libraries
7 реда код:
Код:# Includes the autoloader for libraries installed with composer require __DIR__ . '/vendor/autoload.php'; # Imports the Google Cloud client library use Google\Cloud\Vision\VisionClient; # Your Google Cloud Platform project ID $projectId = 'YOUR_PROJECT_ID'; # Instantiates a client $vision = new VisionClient([ 'projectId' => $projectId ]); # The name of the image file to annotate $fileName = __DIR__ . '/resources/wakeupcat.jpg'; # Prepare the image to be annotated $image = $vision->image(fopen($fileName, 'r'), [ 'LABEL_DETECTION' ]); # Performs label detection on the image file $labels = $vision->annotate($image)->labels(); echo "Labels:\n"; foreach ($labels as $label) { echo $label->description() . "\n"; }
И JSON не се "билдва" така.........................
dakata__92 каза:Fakeheal каза:...
Кода съм го свалил, не съм го писал аз. Иначе амм имам си слабост към cURL. Това е възможно най-бързият начин за обработка на заявки в PHP.
Fakeheal каза:dakata__92 каза:Fakeheal каза:...
Кода съм го свалил, не съм го писал аз. Иначе амм имам си слабост към cURL. Това е възможно най-бързият начин за обработка на заявки в PHP.
Аз не казвам да спреш да го ползваш. Просто ползвай някакъв wrapper като guzzlehttp, който да ти улесни живота многократно. А и може да работи не само с curl
С моят клас сега получавам следният респонд. Къду трябва да настройвам сега, че ми писна вече с тези простотии на Гугъл. Ключ създадох, сега какво трябва пак да му активирам... :!:Fakeheal каза:Ползваш ли това: Google Cloud client library?
{
"error": {
"code": 403,
"message": "Google Cloud Vision API has not been used in project phpocr-170615 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/vision.googleapis.com/overview?project=phpocr-170615 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.Help",
"links": [
{
"description": "Google developers console API activation",
"url": "https://console.developers.google.com/apis/api/vision.googleapis.com/overview?project=phpocr-170615"
}
]
}
]
}
}
Е ушка тръгвам да го Enable а ми иска някакви регистрации и прочие да правя. Пълна простотия. Че и кредитна карта ми иска.Fakeheal каза:Освен ключ трябва да добавиш и че искаш да ползваш тва апи.
Fakeheal каза:Защото не е безплатно.
imagga имат безплатно апи за дев. с някакъв лимит на request-иdakata__92 каза:В крайна сметка, няма ли някаква безплатна база за OCR разпознаване с API или просто достъп с cURL?