USO DE IRONOCR

Cómo obtener texto de una factura en C# Tutorial

Actualizado 23 de febrero, 2023
Compartir:

1. IronOCR, una API de reconocimiento óptico de caracteres

IronOCR es una biblioteca de OCR que puede utilizarse para reconocer datos de texto de imágenes para la extracción de información, incluido el OCR de recibos. Está basado en el motor Tesseract OCR, considerado uno de los motores OCR más precisos disponibles hasta la fecha para el reconocimiento de recibos. IronOCR puede utilizarse para leer texto con información clave de distintos tipos de documentos, como PNG, JPG, TIFF, formato JSON y PDF, y puede reconocer texto en varios idiomas.

Una de las características o servicios clave de IronOCR que lo hacen especialmente útil para el OCR de recibos es su capacidad para detectar automáticamente la orientación del texto aunque la imagen haya sido girada o sesgada. Esto es esencial para el reconocimiento preciso del texto en la carga de recibos y para la extracción de datos, ya que los recibos suelen tener mucha información y pueden estar doblados o arrugados, lo que hace que el texto esté torcido.

2. Características de IronOCR

  • C# OCR utiliza Deep Learning para escanear y reconocer textos de imágenes, documentos escaneados y PDF.
  • .NET OCR es compatible con más de 127 idiomas de todo el mundo.
  • IronOCR puede leer texto de imágenes en muchos formatos de archivo, incluidos PNG, JPG, TIFF y PDF.
  • Texto, datos estructurados salida JSON, o PDF con función de búsqueda a partir de la información extraída.
  • IronOCR es compatible con .NET 5, 6 y 7 (Básico, marco y estándar).
  • IronOCR divide la entrada en diferentes imágenes basadas en regiones de texto. Utiliza Visión por ordenador para identificar las áreas que contienen elementos de texto.

3. Creación de un nuevo proyecto en Visual Studio

Abra el software Visual Studio y vaya al menú Archivo. Seleccione "Nuevo Proyecto" y luego seleccione Aplicación de Consola.

Introduzca el nombre del proyecto y seleccione la ruta en el cuadro de texto correspondiente. A continuación, haga clic en el botón Crear. Seleccione el .NET Framework necesario, como en la captura de pantalla siguiente:

Tutorial de Cómo obtener texto de una factura en C#, Figura 1: Creación de un nuevo proyecto en Visual Studio

Creación de un nuevo proyecto en Visual Studio

El proyecto de Visual Studio generará ahora la estructura de la aplicación de consola. Una vez terminado, abrirá el archivo Program.cs, en el que podrá escribir y ejecutar el código fuente.

How to Get Text From Invoice in C# Tutorial, Figura 2: El archivo program.cs generado desde el Asistente para nuevo proyecto de Visual Studio.

El archivo program.cs generado por el Asistente para nuevos proyectos de Visual Studio.

4. Instalar IronOCR

En Visual Studio, puede integrar fácilmente IronOCR con su proyecto C#. IronOCR ofrece múltiples formas de integración con un proyecto C# .NET. A continuación, hablaremos de uno de ellos: la instalación de IronOCR mediante el gestor de paquetes NuGet.

En Visual Studio, vaya a Herramientas > Administrador de paquetes NuGet > Consola del administrador de paquetes.

Tutorial de Cómo obtener texto de una factura en C#, Figura 3: Consola del gestor de paquetes NuGet de Visual Studio

La consola del gestor de paquetes NuGet de Visual Studio

Tras hacer clic, aparecerá una nueva consola en la parte inferior de la ventana de Visual Studio. Escriba el siguiente comando en la consola y pulse Intro.

Install-Package IronOcr

IronOCR se instalará en sólo unos segundos.

5. Extracción de datos de recibos mediante IronOCR

IronOCR es una potente librería OCR que puede utilizarse para extraer y acceder a datos con detalles de recibos. Con IronOCR, puede tomar una foto de un recibo y convertirla en texto legible por máquina que puede ser fácilmente analizado y procesado sin comprometer la privacidad de los datos.

He aquí un ejemplo de cómo puede utilizar IronOCR para extraer texto de un recibo y mostrar cómo funciona el OCR de recibos.

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

Using ocrInput As New OcrInput("ocr.png")
	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
	Dim RecognizedText As String = ocrResult.Text

	Console.WriteLine(RecognizedText)
End Using
VB   C#

Consulte el Lectura de texto a partir de una imagen para más detalles sobre cómo IronOCR lee texto de imágenes utilizando el lenguaje informático C#.

A continuación se muestra el resultado del código presentado anteriormente:

- LOGO SHOP
- LOREM IPSUM
- DOLOR SITAMET CONSECTETUR
- ADIPISCING ELIT
- 1 LOREM IPSUM $3.20
- 2 ORNARE MALESUADA $9.50
- 3 PORTA FERMENTUM $5.90
- 4 SODALES ARCU $6.00
- 5 ELEIFEND $9.00
- 6 SEMNISIMASSA $0.50
- 7 DUIS FAMES DIS $7.60
- 8 FACILISIRISUS $810
- TOTAL AMOUNT $49.80
- CASH $50.00

6. Extracción de datos específicos de la imagen de recibo mediante IronOCR

Como potente librería OCR, IronOCR permite a los desarrolladores obtener información importante de los recibos escaneados, incluyendo el importe de los impuestos y el nombre del comerciante.

He aquí un ejemplo de cómo podría utilizar IronOCR para extraer el valor del importe total de una imagen de recibo:

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

//  Línea de código para cargar la imagen del recibo
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    //  Optimizar la imagen de entrada para el OCR
    ocrInput.DeNoise(true);
    ocrInput.Contrast();
    ocrInput.EnhanceResolution();
    ocrInput.ToGrayScale();

    OcrResult ocrResult = ocrTesseract.Read(ocrInput);

    //  Buscar el precio total en el resultado OCR
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

//  Línea de código para cargar la imagen del recibo
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    //  Optimizar la imagen de entrada para el OCR
    ocrInput.DeNoise(true);
    ocrInput.Contrast();
    ocrInput.EnhanceResolution();
    ocrInput.ToGrayScale();

    OcrResult ocrResult = ocrTesseract.Read(ocrInput);

    //  Buscar el precio total en el resultado OCR
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

ocrTesseract.Language = OcrLanguage.English

'  Línea de código para cargar la imagen del recibo
Using ocrInput As New OcrInput("ocr.png")
	'  Optimizar la imagen de entrada para el OCR
	ocrInput.DeNoise(True)
	ocrInput.Contrast()
	ocrInput.EnhanceResolution()
	ocrInput.ToGrayScale()

	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)

	'  Buscar el precio total en el resultado OCR
	Dim totalPrice = If(ocrResult.Text.Contains("Total:"), ocrResult.Text.Split("Total:")(1).Split(vbLf)(0), "")
	Console.WriteLine("Total Price: " & totalPrice)
End Using
VB   C#

Gracias a los múltiples ajustes que ofrece el OcrInput es posible optimizar la imagen de entrada para obtener una mayor precisión en el proceso de OCR.

Entrada

How to Get Text From Invoice in C# Tutorial, Figura 4: La imagen de entrada utilizada para demostrar la extracción de datos específicos de los recibos.

La imagen de entrada utilizada para demostrar la extracción de datos específicos de los recibos

Salida

- Total 16.5

7. Leer códigos de barras en recibos

IronOCR puede utilizarse para leer códigos de barras en recibos, así como texto. Para leer los códigos de barras de los recibos con IronOCR, deberá utilizar la función Lector de códigos de barras en combinación con la clase Leer códigos de barra método.

He aquí un ejemplo de cómo puede utilizar IronOCR para leer códigos de barras en una imagen de recibo.

using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
Imports IronOcr
Imports System

Private ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
Using ocrInput As New OcrInput("b.png")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	For Each barcode In ocrResult.Barcodes
		Console.WriteLine(barcode.Value)
	Next barcode
End Using
VB   C#

Imagen de entrada

Cómo Obtener Texto de una Factura en C# Tutorial, Figura 4: Entrada para Lectura de Código de Barras

**Entrada para la lectura del código de barras

Texto de salida

How to Get Text From Invoice in C# Tutorial, Figura 5: Resultado del procesamiento de la imagen del código de barras

**Resultado del tratamiento de la imagen del código de barras.

8. Conclusión

El artículo anterior explica el proceso de instalación y uso de IronOCR en un proyecto C# para extraer datos de recibos, con un fragmento de código de ejemplo.

Lea el tutorial sobre leer texto a partir de imágenes.

IronOCR forma parte del Iron Suite que incluye cinco bibliotecas .NET diferentes para manipular documentos e imágenes. Puede compre la Iron Suite completa por el precio de sólo dos Licencias IronOCR.

Pruebe IronOCR en sus aplicaciones de producción con un prueba gratuita.

< ANTERIOR
Cómo hacer OCR de matrículas en C# (Tutorial)
SIGUIENTE >
Cómo obtener texto de una captura de pantalla con OCR en C#

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 2,012,139 Ver licencias >
123