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
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