Detectar texto em imagens

Reconhecimento óptico de caracteres (OCR)

A API Vision detecta e extrai texto de imagens. Há dois recursos de anotação compatíveis com o reconhecimento óptico de caracteres (OCR):

  • TEXT_DETECTION detecta e extrai texto de qualquer imagem. Por exemplo, uma foto pode ter uma placa de rua ou de trânsito. O JSON inclui toda a string extraída, bem como cada palavra e caixas delimitadoras.

    Imagem de sinal de trânsito

  • DOCUMENT_TEXT_DETECTION também extrai texto de uma imagem, mas a resposta é otimizada para textos e documentos densos. O JSON inclui informações de página, bloco, parágrafo, palavra e quebra de linha.

    Imagem densa com anotações

    Saiba mais sobre DOCUMENT_TEXT_DETECTION para extração de texto escrito à mão e extração de texto de arquivos (PDF/TIFF).

Faça um teste

Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho da Cloud Vision em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.

Faça uma avaliação gratuita do Cloud Vision

Solicitações de detecção de texto

Configurar o projeto e a autenticação Google Cloud

Detectar texto em uma imagem local

Use a API Vision para detectar atributos em um arquivo de imagem local.

Para solicitações REST, envie o conteúdo do arquivo de imagem como uma string codificada em base64 no corpo da sua solicitação.

Para solicitações gcloud e da biblioteca de cliente, especifique o caminho para uma imagem local na sua solicitação.

gcloud

Para realizar a detecção de texto, use o comando gcloud ml vision detect-text, conforme mostrado neste exemplo:

 gcloud ml vision detect-text ./path/to/local/file.jpg 

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • BASE64_ENCODED_IMAGE: a representação base64 (string ASCII) dos dados da imagem binária. Essa string precisa ser semelhante à seguinte:
    • /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
    Veja mais informações no tópico Codificação base64.
  • PROJECT_ID: o ID do projeto do Google Cloud .

Método HTTP e URL:

POST https://vision.googleapis.com/v1/images:annotate

Corpo JSON da solicitação:

 {   "requests": [     {       "image": {         "content": "BASE64_ENCODED_IMAGE"       },       "features": [         {           "type": "TEXT_DETECTION"         }       ]     }   ] } 

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content

Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK e a resposta no formato JSON.

Uma resposta de TEXT_DETECTION inclui a frase detectada, sua caixa delimitadora, bem como cada palavra e suas caixas delimitadoras.

Go

Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionGo.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

 // detectText gets text from the Vision API for an image at the given file path. func detectText(w io.Writer, file string) error { 	ctx := context.Background()  	client, err := vision.NewImageAnnotatorClient(ctx) 	if err != nil { 		return err 	}  	f, err := os.Open(file) 	if err != nil { 		return err 	} 	defer f.Close()  	image, err := vision.NewImageFromReader(f) 	if err != nil { 		return err 	} 	annotations, err := client.DetectTexts(ctx, image, nil, 10) 	if err != nil { 		return err 	}  	if len(annotations) == 0 { 		fmt.Fprintln(w, "No text found.") 	} else { 		fmt.Fprintln(w, "Text:") 		for _, annotation := range annotations { 			fmt.Fprintf(w, "%q\n", annotation.Description) 		} 	}  	return nil } 

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido da API Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision para Java.

 import com.google.cloud.vision.v1.AnnotateImageRequest; import com.google.cloud.vision.v1.AnnotateImageResponse; import com.google.cloud.vision.v1.BatchAnnotateImagesResponse; import com.google.cloud.vision.v1.EntityAnnotation; import com.google.cloud.vision.v1.Feature; import com.google.cloud.vision.v1.Image; import com.google.cloud.vision.v1.ImageAnnotatorClient; import com.google.protobuf.ByteString; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List;  public class DetectText {   public static void detectText() throws IOException {     // TODO(developer): Replace these variables before running the sample.     String filePath = "path/to/your/image/file.jpg";     detectText(filePath);   }    // Detects text in the specified image.   public static void detectText(String filePath) throws IOException {     List<AnnotateImageRequest> requests = new ArrayList<>();      ByteString imgBytes = ByteString.readFrom(new FileInputStream(filePath));      Image img = Image.newBuilder().setContent(imgBytes).build();     Feature feat = Feature.newBuilder().setType(Feature.Type.TEXT_DETECTION).build();     AnnotateImageRequest request =         AnnotateImageRequest.newBuilder().addFeatures(feat).setImage(img).build();     requests.add(request);      // Initialize client that will be used to send requests. This client only needs to be created     // once, and can be reused for multiple requests. After completing all of your requests, call     // the "close" method on the client to safely clean up any remaining background resources.     try (ImageAnnotatorClient client = ImageAnnotatorClient.create()) {       BatchAnnotateImagesResponse response = client.batchAnnotateImages(requests);       List<AnnotateImageResponse> responses = response.getResponsesList();        for (AnnotateImageResponse res : responses) {         if (res.hasError()) {           System.out.format("Error: %s%n", res.getError().getMessage());           return;         }          // For full list of available annotations, see http://g.co/cloud/vision/docs         for (EntityAnnotation annotation : res.getTextAnnotationsList()) {           System.out.format("Text: %s%n", annotation.getDescription());           System.out.format("Position : %s%n", annotation.getBoundingPoly());         }       }     }   } }

Node.js

Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionNode.js.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

const vision = require('@google-cloud/vision');  // Creates a client const client = new vision.ImageAnnotatorClient();  /**  * TODO(developer): Uncomment the following line before running the sample.  */ // const fileName = 'Local image file, e.g. /path/to/image.png';  // Performs text detection on the local file const [result] = await client.textDetection(fileName); const detections = result.textAnnotations; console.log('Text:'); detections.forEach(text => console.log(text));

Python

Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionPython.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

def detect_text(path):     """Detects text in the file."""     from google.cloud import vision      client = vision.ImageAnnotatorClient()      with open(path, "rb") as image_file:         content = image_file.read()      image = vision.Image(content=content)      response = client.text_detection(image=image)     texts = response.text_annotations     print("Texts:")      for text in texts:         print(f'\n"{text.description}"')          vertices = [             f"({vertex.x},{vertex.y})" for vertex in text.bounding_poly.vertices         ]          print("bounds: {}".format(",".join(vertices)))      if response.error.message:         raise Exception(             "{}\nFor more info on error messages, check: "             "https://cloud.google.com/apis/design/errors".format(response.error.message)         )  

Outras linguagens

C#: Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a Documentação de referência do Vision para .NET.

PHP: Siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a Documentação de referência do Vision para PHP.

Ruby Siga estas instruções:Instruções de configuração do Ruby na página das bibliotecas de cliente e, em seguida, visite oDocumentação de referência do Vision para Ruby.

Detectar texto em uma imagem remota

É possível usar a API Vision para realizar a detecção de recursos em um arquivo de imagem remoto localizado no Cloud Storage ou na Web. Para enviar uma solicitação de arquivo remoto, especifique o URL da Web do arquivo ou o URI do Cloud Storage no corpo da solicitação.

gcloud

Para realizar a detecção de texto, use o comando gcloud ml vision detect-text, conforme mostrado neste exemplo:

 gcloud ml vision detect-text gs://cloud-samples-data/vision/ocr/sign.jpg 

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • CLOUD_STORAGE_IMAGE_URI: o caminho para um arquivo de imagem válido em um bucket do Cloud Storage. Você precisa ter, pelo menos, privilégios de leitura para o arquivo. Exemplo:
    • gs://cloud-samples-data/vision/ocr/sign.jpg
  • PROJECT_ID: o ID do projeto do Google Cloud .

Método HTTP e URL:

POST https://vision.googleapis.com/v1/images:annotate

Corpo JSON da solicitação:

 {   "requests": [     {       "image": {         "source": {           "imageUri": "CLOUD_STORAGE_IMAGE_URI"         }        },        "features": [          {            "type": "TEXT_DETECTION"          }        ]     }   ] } 

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content

Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK e a resposta no formato JSON.

Uma resposta de TEXT_DETECTION inclui a frase detectada, sua caixa delimitadora, bem como cada palavra e suas caixas delimitadoras.

Go

Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionGo.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

 // detectText gets text from the Vision API for an image at the given file path. func detectTextURI(w io.Writer, file string) error { 	ctx := context.Background()  	client, err := vision.NewImageAnnotatorClient(ctx) 	if err != nil { 		return err 	}  	image := vision.NewImageFromURI(file) 	annotations, err := client.DetectTexts(ctx, image, nil, 10) 	if err != nil { 		return err 	}  	if len(annotations) == 0 { 		fmt.Fprintln(w, "No text found.") 	} else { 		fmt.Fprintln(w, "Text:") 		for _, annotation := range annotations { 			fmt.Fprintf(w, "%q\n", annotation.Description) 		} 	}  	return nil } 

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido da API Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision para Java.

 import com.google.cloud.vision.v1.AnnotateImageRequest; import com.google.cloud.vision.v1.AnnotateImageResponse; import com.google.cloud.vision.v1.BatchAnnotateImagesResponse; import com.google.cloud.vision.v1.EntityAnnotation; import com.google.cloud.vision.v1.Feature; import com.google.cloud.vision.v1.Image; import com.google.cloud.vision.v1.ImageAnnotatorClient; import com.google.cloud.vision.v1.ImageSource; import java.io.IOException; import java.util.ArrayList; import java.util.List;  public class DetectTextGcs {    public static void detectTextGcs() throws IOException {     // TODO(developer): Replace these variables before running the sample.     String filePath = "gs://your-gcs-bucket/path/to/image/file.jpg";     detectTextGcs(filePath);   }    // Detects text in the specified remote image on Google Cloud Storage.   public static void detectTextGcs(String gcsPath) throws IOException {     List<AnnotateImageRequest> requests = new ArrayList<>();      ImageSource imgSource = ImageSource.newBuilder().setGcsImageUri(gcsPath).build();     Image img = Image.newBuilder().setSource(imgSource).build();     Feature feat = Feature.newBuilder().setType(Feature.Type.TEXT_DETECTION).build();     AnnotateImageRequest request =         AnnotateImageRequest.newBuilder().addFeatures(feat).setImage(img).build();     requests.add(request);      // Initialize client that will be used to send requests. This client only needs to be created     // once, and can be reused for multiple requests. After completing all of your requests, call     // the "close" method on the client to safely clean up any remaining background resources.     try (ImageAnnotatorClient client = ImageAnnotatorClient.create()) {       BatchAnnotateImagesResponse response = client.batchAnnotateImages(requests);       List<AnnotateImageResponse> responses = response.getResponsesList();        for (AnnotateImageResponse res : responses) {         if (res.hasError()) {           System.out.format("Error: %s%n", res.getError().getMessage());           return;         }          // For full list of available annotations, see http://g.co/cloud/vision/docs         for (EntityAnnotation annotation : res.getTextAnnotationsList()) {           System.out.format("Text: %s%n", annotation.getDescription());           System.out.format("Position : %s%n", annotation.getBoundingPoly());         }       }     }   } }

Node.js

Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionNode.js.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

// Imports the Google Cloud client libraries const vision = require('@google-cloud/vision');  // Creates a client const client = new vision.ImageAnnotatorClient();  /**  * TODO(developer): Uncomment the following lines before running the sample.  */ // const bucketName = 'Bucket where the file resides, e.g. my-bucket'; // const fileName = 'Path to file within bucket, e.g. path/to/image.png';  // Performs text detection on the gcs file const [result] = await client.textDetection(`gs://${bucketName}/${fileName}`); const detections = result.textAnnotations; console.log('Text:'); detections.forEach(text => console.log(text));

Python

Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionPython.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

def detect_text_uri(uri):     """Detects text in the file located in Google Cloud Storage or on the Web."""     from google.cloud import vision      client = vision.ImageAnnotatorClient()     image = vision.Image()     image.source.image_uri = uri      response = client.text_detection(image=image)     texts = response.text_annotations     print("Texts:")      for text in texts:         print(f'\n"{text.description}"')          vertices = [             f"({vertex.x},{vertex.y})" for vertex in text.bounding_poly.vertices         ]          print("bounds: {}".format(",".join(vertices)))      if response.error.message:         raise Exception(             "{}\nFor more info on error messages, check: "             "https://cloud.google.com/apis/design/errors".format(response.error.message)         )  

Outras linguagens

C#: Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a Documentação de referência do Vision para .NET.

PHP: Siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a Documentação de referência do Vision para PHP.

Ruby Siga estas instruções:Instruções de configuração do Ruby na página das bibliotecas de cliente e, em seguida, visite oDocumentação de referência do Vision para Ruby.

Especificar o idioma (opcional)

Os dois tipos de solicitação de OCR são compatíveis com um ou mais languageHints que especificam o idioma de qualquer texto da imagem. No entanto, um valor vazio geralmente produz os melhores resultados, porque a omissão de um valor permite a detecção automática de idioma. Para idiomas com base no alfabeto latino, não é necessário definir languageHints. Em casos raros, quando o idioma do texto da imagem é conhecido, definir uma dica ajuda a conseguir melhores resultados, mas poderá ser um grande problema se a dica estiver errada. A detecção de texto retornará um erro se um ou mais dos idiomas especificados não forem compatíveis.

Se você optar por fornecer uma dica de idioma, modifique o corpo da solicitação (arquivo request.json) para fornecer a string de um dos idiomas compatíveis no campo imageContext.languageHints, conforme mostrado no exemplo a seguir:

{   "requests": [     {       "image": {         "source": {           "imageUri": "IMAGE_URL"         }       },       "features": [         {           "type": "DOCUMENT_TEXT_DETECTION"         }       ],       "imageContext": {         "languageHints": ["en-t-i0-handwrit"]       }     }   ] }

Suporte multirregional

Já é possível especificar o armazenamento de dados e o processamento de OCR em nível de continente. Estas regiões são compatíveis:

  • us: somente nos EUA
  • eu: União Europeia

Locais

O Cloud Vision oferece controle sobre onde os recursos do projeto são armazenados e processados. Especificamente, é possível configurar o Cloud Vision para armazenar e processar os dados somente na União Europeia.

Por padrão, o Cloud Vision armazena e processa recursos em um local global, o que significa que o Cloud Vision não garante que os recursos permanecerão em um determinado local ou região. Se você escolher a União Europeia como local, o Google armazenará os dados e os processará somente na União Europeia. Você e seus usuários podem acessar os dados de qualquer local.

Como definir o local usando a API

A API Vision aceita um endpoint de API global (vision.googleapis.com), bem como dois endpoints baseados em região: um endpoint da União Europeia (eu-vision.googleapis.com) e um endpoint dos Estados Unidos (us-vision.googleapis.com). Use esses endpoints para processamento específico da região. Por exemplo, para armazenar e processar os dados somente na União Europeia, use o URI eu-vision.googleapis.com no lugar de vision.googleapis.com para as chamadas da API REST:

  • https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/images:annotate
  • https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/images:asyncBatchAnnotate
  • https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/files:annotate
  • https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/files:asyncBatchAnnotate

Para armazenar e processar seus dados somente nos Estados Unidos, use o endpoint dos EUA (us-vision.googleapis.com) com os métodos anteriores.

Como definir o local usando as bibliotecas de cliente

Por padrão, as bibliotecas cliente da API Vision acessam o endpoint global da API (vision.googleapis.com). Para armazenar e processar os dados somente na União Europeia, você precisa definir explicitamente o endpoint (eu-vision.googleapis.com). Os exemplos de código abaixo mostram como definir essa configuração.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • REGION_ID: um dos identificadores de local regionais válidos:
    • us: somente nos EUA
    • eu: União Europeia
  • CLOUD_STORAGE_IMAGE_URI: o caminho para um arquivo de imagem válido em um bucket do Cloud Storage. Você precisa ter, pelo menos, privilégios de leitura para o arquivo. Exemplo:
    • gs://cloud-samples-data/vision/ocr/sign.jpg
  • PROJECT_ID: o ID do projeto do Google Cloud .

Método HTTP e URL:

POST https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/images:annotate

Corpo JSON da solicitação:

 {   "requests": [     {       "image": {         "source": {           "imageUri": "CLOUD_STORAGE_IMAGE_URI"         }        },        "features": [          {            "type": "TEXT_DETECTION"          }        ]     }   ] } 

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/images:annotate"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/images:annotate" | Select-Object -Expand Content

Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK e a resposta no formato JSON.

Uma resposta de TEXT_DETECTION inclui a frase detectada, sua caixa delimitadora, bem como cada palavra e suas caixas delimitadoras.

Go

Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionGo.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

import ( 	"context" 	"fmt"  	vision "cloud.google.com/go/vision/apiv1" 	"google.golang.org/api/option" )  // setEndpoint changes your endpoint. func setEndpoint(endpoint string) error { 	// endpoint := "eu-vision.googleapis.com:443"  	ctx := context.Background() 	client, err := vision.NewImageAnnotatorClient(ctx, option.WithEndpoint(endpoint)) 	if err != nil { 		return fmt.Errorf("NewImageAnnotatorClient: %w", err) 	} 	defer client.Close()  	return nil } 

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido da API Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision para Java.

ImageAnnotatorSettings settings =     ImageAnnotatorSettings.newBuilder().setEndpoint("eu-vision.googleapis.com:443").build();  // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. After completing all of your requests, call // the "close" method on the client to safely clean up any remaining background resources. ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);

Node.js

Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionNode.js.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

// Imports the Google Cloud client library const vision = require('@google-cloud/vision');  async function setEndpoint() {   // Specifies the location of the api endpoint   const clientOptions = {apiEndpoint: 'eu-vision.googleapis.com'};    // Creates a client   const client = new vision.ImageAnnotatorClient(clientOptions);    // Performs text detection on the image file   const [result] = await client.textDetection('./resources/wakeupcat.jpg');   const labels = result.textAnnotations;   console.log('Text:');   labels.forEach(label => console.log(label.description)); } setEndpoint();

Python

Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionPython.

Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

from google.cloud import vision  client_options = {"api_endpoint": "eu-vision.googleapis.com"}  client = vision.ImageAnnotatorClient(client_options=client_options)

Testar

Teste as opções de detecção de texto e de texto em documentos abaixo. É possível usar a imagem já especificada (gs://cloud-samples-data/vision/ocr/sign.jpg) clicando em Executar ou especificar sua própria imagem no lugar.

Para testar a detecção de texto em documentos, atualize o valor de type para DOCUMENT_TEXT_DETECTION.

Imagem de sinal de trânsito

Corpo da solicitação:

{   "requests": [     {       "features": [         {           "type": "TEXT_DETECTION"         }       ],       "image": {         "source": {           "imageUri": "gs://cloud-samples-data/vision/ocr/sign.jpg"         }       }     }   ] }