viernes, 3 de enero de 2020

229. Azure Vision OCR


El OCR ha evolucionado en el tiempo, se presentan una gran variedad de soluciones para poder obtener el valor escrito es un documento, la evolución del OCR ha sido grande.

Vamos a ver como analizar un documento por medio de Azure Cognitive Services.

1. Creamos el servicio en Azure



Creamos un  nuevo servicio, el servicio que vamos a crear es de cognitive services



Asignando información para la creación del servicio



En nuestro servicio, vamos a tener 2 datos de suma importancia



La clave y el endpoint

Bueno ya que tenemos esto tenemos el motor ahora es necesario que escribamos el código.


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

namespace ocrb
{
    class Program
    {
        static string subscriptionKey = "llave aqui";
        static string endpoint = "https://southcentralus.api.cognitive.microsoft.com/";
        static void Main(string[] args)
        {
            Authenticate(endpoint, subscriptionKey, @"C:\Interno\02_ID\20191211\Windows\Validador\Imagenes\IMG_1975.jpg");
            Console.ReadLine();
        }

        public static async void Authenticate(string endpoint, string key, string imagen)
        {
            ComputerVisionClient client =
              new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
              { Endpoint = endpoint };

            using (Stream imageFileStream = File.OpenRead(imagen))
            {
                OcrResult ocrResult = await client.RecognizePrintedTextInStreamAsync(true, imageFileStream);
                foreach(OcrRegion objloop in ocrResult.Regions)
                {
                    foreach(OcrLine objloop2 in objloop.Lines)
                    {
                        Console.WriteLine("");
                        foreach(OcrWord objloop3 in objloop2.Words)
                        {
                            Console.Write(" " + objloop3.Text + " ");
                        }
                    }
                }
            }

        }
    }
}



Expliquemos un poco el codigo

1. Primero establecemos las claves de acceso a la nube

        static string subscriptionKey = "llave aqui";
        static string endpoint = "https://southcentralus.api.cognitive.microsoft.com/";
2. Nos autenticamos en el servicio

ComputerVisionClient client =
              new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
              { Endpoint = endpoint };

3. Leemos la imagen que se encuentra e disco

using (Stream imageFileStream = File.OpenRead(imagen))
            {

4. Invocamos el método para obtener el texto

OcrResult ocrResult = await client.RecognizePrintedTextInStreamAsync(true, imageFileStream);

5. Determinamos la información de la imagen

  foreach(OcrRegion objloop in ocrResult.Regions)
                {
                    foreach(OcrLine objloop2 in objloop.Lines)
                    {
                        Console.WriteLine("");
                        foreach(OcrWord objloop3 in objloop2.Words)
                        {
                            Console.Write(" " + objloop3.Text + " ");
                        }
                    }
                }

Felices líneas

No hay comentarios.:

Publicar un comentario