Saltar al pie de página
USANDO IRONOCR

Recibos de supermercado OCR en C# (Tutorial para desarrolladores)

Recibos y Automatización

Los recibos son esenciales en el mundo acelerado de hoy. Ya sea que estés comprando comestibles o comiendo en un restaurante, un recibo ayuda a rastrear la cantidad gastada y puede asistir en la elaboración de presupuestos. Mientras tanto, las tiendas de comestibles pueden usar escáneres de recibos para analizar datos de ventas, ayudándolas a prever la demanda.

Sin embargo, los recibos pueden ser difíciles de leer, y puede no estar claro cómo se calculan los totales. La entrada manual de datos de los recibos para fines de presupuesto es tediosa y propensa a errores, especialmente cuando se involucran muchos artículos. Perder un recibo puede de repente hacer que no esté claro por qué superaste tu presupuesto mensual.

Para abordar este problema, las aplicaciones de presupuesto y finanzas han adoptado la tecnología OCR (Reconocimiento Óptico de Caracteres). Al escanear recibos y convertirlos en formato digital, el OCR minimiza el error humano, automatiza la entrada de datos, rastrea los gastos y proporciona información sobre los comportamientos de compra.

La tecnología OCR funciona usando algoritmos de aprendizaje automático para identificar y extraer texto y números de imágenes. Sin embargo, los sistemas OCR no son perfectos, especialmente cuando tratan con imágenes afectadas por ruido, como desenfoques o manchas, lo que puede llevar a una extracción incorrecta de datos. Por lo tanto, seleccionar una biblioteca OCR confiable que pueda procesar eficientemente y optimizar los métodos de lectura es crucial.

¿Por qué IronOCR?

IronOCR es una biblioteca C# basada en una versión personalizada del motor OCR Tesseract. Aquí hay algunas de sus características clave:

  1. Compatibilidad Cruzada: Totalmente compatible con plataformas .NET, incluidas .NET 8, 7, 6, 5 y el Framework 4.6.2 en adelante. Soporta Windows, macOS, Azure y Linux.
  2. Flexibilidad y Escalabilidad: Maneja varios formatos de entrada como jpg, png y gif. Se integra sin problemas con objetos "System.Drawing" nativos en C#.
  3. Facilidad de Uso y Soporte: Bien documentado, con una API robusta y soporte disponible 24/5.
  4. Capacidades Multilingües: Soporta hasta 125 idiomas, ideal para documentos internacionales. Se destaca en reconocer nombres de productos y precios, esencial para el procesamiento de recibos.

Implementación del OCR de recibos

Clave de licencia

Antes de usar IronOCR, obtén una clave de licencia. Una prueba gratuita está disponible aquí.

// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
' Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"
$vbLabelText   $csharpLabel

Ejemplo: Leer un recibo de supermercado

Vamos a explorar cómo IronOCR se puede utilizar en una aplicación para escanear recibos de supermercado con un teléfono inteligente, extrayendo datos como nombres de productos y precios para recompensar puntos basados en compras totales.

Imagen de entrada

Ejemplo de recibo de supermercado

Implementación de código C

using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine
        var ocr = new IronTesseract();

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);
    }
}
using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine
        var ocr = new IronTesseract();

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);
    }
}
Imports IronOcr

Friend Class ReceiptScanner
	Shared Sub Main()
		' Set the license key for IronOCR
		IronOcr.License.LicenseKey = "YOUR-KEY"

		' Instantiate OCR engine
		Dim ocr = New IronTesseract()

		Dim inputPhoto = New OcrInput()
		inputPhoto.LoadImage("supermarketexample.jpg")

		' Perform OCR on the loaded image
		Dim result As OcrResult = ocr.Read(inputPhoto)

		' Output the text extracted from the receipt
		Dim text As String = result.Text
		Console.WriteLine(text)
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. Importar la biblioteca IronOcr.
  2. Instanciar el motor OCR (IronTesseract).
  3. Crear un nuevo OcrInput para cargar la imagen del recibo.
  4. Usar el método Read de IronTesseract para extraer texto.
  5. Mostrar los resultados en la consola.

Depuración y pruebas de confianza

Para asegurar la consistencia, verifica el nivel de confianza de los datos extraídos, que determina su precisión.

OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Confidence: {result.Confidence}");
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Confidence: {result.Confidence}");
Dim result As OcrResult = ocr.Read(inputPhoto)
Dim text As String = result.Text
Console.WriteLine(text)
Console.WriteLine($"Confidence: {result.Confidence}")
$vbLabelText   $csharpLabel

La propiedad Confidence proporciona una medida estadística de la precisión. Va de 0 (baja confianza) a 1 (alta confianza). Ajusta tus estrategias de manejo de datos basándote en estos niveles de confianza para obtener fiabilidad.

Eliminación y filtrado de ruido

Antes de procesar imágenes, usa estos métodos para limpiar y preparar imágenes para obtener mejores resultados de OCR:

inputPhoto.DeNoise();      // Removes noise from the image
inputPhoto.ToGrayScale();  // Converts image to grayscale
inputPhoto.DeNoise();      // Removes noise from the image
inputPhoto.ToGrayScale();  // Converts image to grayscale
inputPhoto.DeNoise() ' Removes noise from the image
inputPhoto.ToGrayScale() ' Converts image to grayscale
$vbLabelText   $csharpLabel

Estos pasos de preprocesamiento ayudan a aumentar la precisión de la extracción de datos.

Conclusión

IronOCR

La tecnología OCR para recibos es un activo para empresas e individuos, ayudando en la elaboración de presupuestos, previniendo fraudes al verificar los detalles de las transacciones, y automatizando la recolección de datos. IronOCR se destaca por su precisión, velocidad y facilidad de integración con plataformas existentes, convirtiéndolo en una excelente opción para desarrolladores que buscan implementar soluciones de escaneo de recibos.

Prueba la licencia de prueba de IronOCR para explorar sus capacidades.

Preguntas Frecuentes

¿Cómo puede usarse la tecnología OCR para automatizar el procesamiento de recibos de supermercado?

La tecnología OCR puede automatizar el procesamiento de recibos de supermercado convirtiendo recibos escaneados en datos digitales. Usando IronOCR, los recibos pueden ser leídos y el texto puede ser extraído automáticamente, reduciendo la necesidad de ingresar datos manualmente y minimizando el error humano.

¿Qué ventajas ofrece IronOCR para el procesamiento de recibos de supermercado?

IronOCR ofrece varias ventajas para procesar recibos de supermercado, incluyendo compatibilidad multiplataforma, soporte para múltiples formatos de imagen, una API robusta para fácil integración, y la capacidad de procesar hasta 125 idiomas, lo que lo hace ideal para recibos internacionales.

¿Cómo integrar IronOCR en una aplicación C# para leer recibos de supermercado?

Para integrar IronOCR en una aplicación C#, necesitas obtener una clave de licencia, importar la biblioteca IronOcr, y usar el motor IronTesseract para leer y extraer texto de imágenes de recibos de supermercado.

¿Qué técnicas de preprocesamiento mejoran la precisión del OCR en el escaneo de recibos?

IronOCR proporciona técnicas de preprocesamiento como DeNoise y ToGrayScale para mejorar la precisión del OCR. Estas técnicas ayudan a eliminar el ruido de la imagen y a convertir imágenes a escala de grises, mejorando la extracción de texto de los recibos.

¿Por qué es importante la prueba de confianza en el OCR y cómo se aplica?

La prueba de confianza en IronOCR es importante porque mide la precisión de los datos extraídos, con valores que van de 0 (bajo) a 1 (alto). Ayuda a los usuarios a evaluar la fiabilidad de los resultados de OCR e informa las decisiones de manejo de datos.

¿Puede IronOCR manejar recibos de supermercado multilingües?

Sí, IronOCR soporta el procesamiento OCR en hasta 125 idiomas, lo que le permite manejar recibos de supermercado multilingües eficientemente.

¿Está disponible una versión de prueba para desarrolladores interesados en IronOCR?

Sí, una prueba gratuita de IronOCR está disponible para desarrolladores, permitiéndoles explorar sus características y capacidades antes de comprometerse a una compra.

¿Qué plataformas son compatibles con IronOCR para el escaneo de recibos?

IronOCR es compatible con plataformas .NET, incluyendo .NET 8, 7, 6, 5, y Framework 4.6.2 en adelante, y soporta operación en entornos Windows, macOS, Azure y Linux.

¿Qué hace que IronOCR sea adecuado para integrar el escaneo de recibos en aplicaciones?

IronOCR es adecuado para integrar el escaneo de recibos en aplicaciones debido a su alta precisión, facilidad de uso, soporte multiplataforma y su capacidad de manejar varios formatos de entrada e idiomas sin problemas.

Kannaopat Udonpant
Ingeniero de Software
Antes de convertirse en Ingeniero de Software, Kannapat completó un doctorado en Recursos Ambientales de la Universidad de Hokkaido en Japón. Mientras perseguía su grado, Kannapat también se convirtió en miembro del Laboratorio de Robótica de Vehículos, que es parte del Departamento de Ingeniería ...
Leer más