Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Azure Cognitive Services

Curso de Azure Cognitive Services

Luis Antonio Ruvalcaba Sanchez

Luis Antonio Ruvalcaba Sanchez

Extracción de textos en imágenes utilizando OCR

17/27
Recursos

Aportes 3

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Código del ejemplo

using System;
using System.Collections.Generic;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;
using System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Threading;
using System.Linq;

namespace _8_OCR
{
    class Program
    {
        // Add your Computer Vision subscription key and endpoint
        static string subscriptionKey= "e492c2af38464ab5a6aa449a8ef4328a";
        static string endpoint = "https://cognitivelrs.cognitiveservices.azure.com/";

        private const string READ_TEXT_URL_IMAGE = "https://intelligentkioskstore.blob.core.windows.net/visionapi/suggestedphotos/3.png";


        static void Main(string[] args)
        {
            ComputerVisionClient client = Authenticate(endpoint, subscriptionKey);

            // Extract text (OCR) from a URL image using the Read API
            ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait();
        }

        /*
         * AUTHENTICATE
         * Creates a Computer Vision client used by each example.
         */
        public static ComputerVisionClient Authenticate(string endpoint, string key)
        {
            ComputerVisionClient client =
              new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
              { Endpoint = endpoint };
            return client;
        }

        /*
         * READ FILE - URL 
         * Extracts text. 
         */
        public static async Task ReadFileUrl(ComputerVisionClient client, string urlFile)
        {
            Console.WriteLine("----------------------------------------------------------");
            Console.WriteLine("READ FILE FROM URL");
            Console.WriteLine();

            // Read text from URL
            var textHeaders = await client.ReadAsync(urlFile);
            // After the request, get the operation location (operation ID)
            string operationLocation = textHeaders.OperationLocation;
            Thread.Sleep(2000);

            // Retrieve the URI where the extracted text will be stored from the Operation-Location header.
            // We only need the ID and not the full URL
            const int numberOfCharsInOperationId = 36;
            string operationId = operationLocation.Substring(operationLocation.Length - numberOfCharsInOperationId);

            // Extract the text
            ReadOperationResult results;
            Console.WriteLine($"Extracting text from URL file {Path.GetFileName(urlFile)}...");
            Console.WriteLine();
            do
            {
                results = await client.GetReadResultAsync(Guid.Parse(operationId));
            }
            while ((results.Status == OperationStatusCodes.Running ||
                results.Status == OperationStatusCodes.NotStarted));

            // Display the found text.
            Console.WriteLine();
            var textUrlFileResults = results.AnalyzeResult.ReadResults;
            foreach (ReadResult page in textUrlFileResults)
            {
                foreach (Line line in page.Lines)
                {
                    Console.WriteLine(line.Text);
                }
            }
            Console.WriteLine();
        }

    }    
}

¿Qué es OCR?

Una tecnología que en ingles significa Optical Caracter Recognition, permite analizar la imagen y extraer el texto.

API de Lectura

Es la tecnología OCR más reciente de Azure que permite extraer texto impreso (en varios idiomas), texto manuscrito (sólo en inglés), dígitos y símbolos de divisas.

Requisitos de entrada

Las llamadas a la API de lectura usa las imágenes y documentos como entrada y requiere:

  • Formatos de archivos admitidos: JPEG, PNG; PDF y TIFF.
  • En el caso de archivos PDF y TIFF se procesan hasta 2000 páginas.
  • El tamaño del archivo debe ser inferior a 50 MB y de al menos 50 x 50 píxeles y hasta 10,000 x 10,000 píxeles.

Características principales

La API de lectura incluye las siguientes características

  • Extracción de texto impreso en 73 idiomas.
  • Extracción de texto manuscrito en inglés.
  • No se requiere identificación del idioma.
  • Compatibilidad con idiomas mixtos y modo mixto (impresión y escritura a mano).
  • Disponible como contenedor para implementación local o a través de la API en Azure.

El tamaño del archivo debe ser inferior a 50 MB y de al menos 50 x 50 pixeles y hasta 10000 x 100000 pixeles.