How to read or detect text from image using Google Vision API, Google Vision API with PHP
How to read or detect text from image using Google Vision API

In this blog post, i will be able to allow you to skills to read content of images with Google Vision API.

Google Vision API can easily detect and extract text from a picture . There are two annotation features (TEXT_DETECTION, DOCUMENT_TEXT_DETECTION) that perform Optical Character Recognition and return the extracted text, if any.

In order to use Google Vision API, you'll need to create new project or select an existing project and enable the Vision API.

Below are the example to read the text from image using HTML, Css and PHP


<!DOCTYPE html>
<html>
<head>
    <title>How to read or detect text from image using Google Vision API </title>
</head>
<body>

    <form enctype="multipart/form-data" action="" method="POST">
        Choose an image to upload: <input name="image" type="file" /><br />
        <input type="submit" value="Upload Document" />
    </form>

<?php

$url = "https://vision.googleapis.com/v1/images:annotate?key={api_key}";
$detection_type = "TEXT_DETECTION";
$image_validation = array('image/jpeg','image/png','image/gif');

if($_FILES){

    // validate uploaded file for allowed mime type
    if(in_array($_FILES['image']['type'],$image_validation)){            

        // base64 encode image
        $image = file_get_contents($_FILES['image']['tmp_name']);
        $image_base64 = base64_encode($image);

        $json_request ='{
                  "requests": [
                    {
                    "image": {
                        "content":"' . $image_base64. '"
                      },
                      "features": [
                          {
                              "type": "' .$detection_type. '",
                              "maxResults": 200
                          }
                      ]
                    }
                ]
            }';

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $json_request);
        $json_response = curl_exec($curl);
        $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        curl_close($curl);

        // verify if we got a correct response
        if ( $status != 200 ) {
            die("Something when wrong. Status code: $status" );
        }
        
        // create an image identifier for the uploaded file
        switch($_FILES['image']['type']){
            case 'image/jpeg':
                $im = imagecreatefromjpeg($_FILES['image']['tmp_name']);
                break;
            case 'image/png':
                $im = imagecreatefrompng($_FILES['image']['tmp_name']);
                break;
            case 'image/gif':
                $im = imagecreatefromgif($_FILES['image']['tmp_name']);
                break;
        }

        // transform the json response to an associative array
        $response = json_decode($json_response, true);            
        // display the first text annotation
        echo'<pre>';
        print_r($response['responses'][0]['textAnnotations'][0]['description']);
        echo'</pre>';
    
    }
    else{
        echo 'File type Invalied';
    }

    }
?>

</body>
</html>

Related Posts

Payroll Management Software

Blazingcoders offering Payroll Management Software that help our clients in preparing salary and wag

Custom T-Shirt ECommerce Website Development Company

Blazingcoders is an eCommerce Website Development Company. We specially design and develop a Custom

Easy Way To Design A Web Page Using Fireworks

Learn how to design a website with Adobe Fireworks We provide you a tutorial on fireworks to crea