Saltar al pie de página
USANDO IRONOCR

OCR en C# Tutorial de CodeProject: Extraer Texto de Imágenes con IronOCR

El reconocimiento óptico de caracteres (OCR) transforma la forma en que los desarrolladores gestionan el procesamiento de documentos en sus proyectos .NET. Tanto si se trabaja con documentos escaneados como con archivos de imagen o TIFF, la implementación de una solución de OCR fiable permite a las aplicaciones extraer texto y convertir datos visuales en contenido legible por máquina. En este artículo, le mostraremos cómo utilizar OCR en C# CodeProject utilizando IronOCR, una potente biblioteca de OCR que simplifica todo el proceso de reconocimiento de texto.

Inicie su prueba gratuita de IronOCR para seguir estos ejemplos de código.

¿Cómo configuro una biblioteca OCR en mi proyecto .NET?

La configuración del reconocimiento óptico de caracteres (OCR) en Visual Studio requiere unos pocos pasos. La biblioteca IronOCR está disponible a través de NuGet, lo que facilita su integración en cualquier aplicación de Windows.

Abre Visual Studio y crea un nuevo proyecto de aplicación de consola. En el Explorador de soluciones, haga clic con el botón derecho en Referencias y seleccione "Administrar paquetes NuGet" Busque "IronOcr" e instale el paquete. El gestor de paquetes NuGet descarga todos los archivos DLL necesarios y añade referencias a su proyecto automáticamente.

// Install via Package Manager Console
Install-Package IronOCR
// Install via Package Manager Console
Install-Package IronOCR
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Una vez instalado, añada la sentencia using para importar el espacio de nombres IronOCR en su programa. La biblioteca es compatible con .NET Framework 4.6.2+ y .NET Core, lo que garantiza la compatibilidad con distintos tipos de proyectos y versiones de Windows.

¿Cómo puedo extraer texto de un archivo de imagen?

El primer paso en el proceso de OCR es cargar una imagen y pasarla por el motor de OCR. IronOCR proporciona la clase IronTesseract como API de OCR principal para las operaciones de reconocimiento de caracteres. Este ejemplo de OCR muestra el enfoque fundamental para extraer texto de cualquier archivo de imagen.

using System;
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        // Initialize the new Tesseract engine
        var ocr = new IronTesseract();
        // Load the image file and perform OCR
        using (var input = new OcrInput())
        {
            input.LoadImage(@"sample-document.png");
            // Process the image and extract text
            OcrResult result = ocr.Read(input);
            // Output the recognized text
            var text = result.Text;
            Console.WriteLine(text);
        }
    }
}
using System;
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        // Initialize the new Tesseract engine
        var ocr = new IronTesseract();
        // Load the image file and perform OCR
        using (var input = new OcrInput())
        {
            input.LoadImage(@"sample-document.png");
            // Process the image and extract text
            OcrResult result = ocr.Read(input);
            // Output the recognized text
            var text = result.Text;
            Console.WriteLine(text);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado del reconocimiento óptico de caracteres

OCR en C# Tutorial de CodeProject: Extraer Texto de Imágenes con IronOCR: Imagen 1 - Captura de pantalla del resultado del OCR

El código anterior crea un objeto IronTesseract que sirve como motor OCR para todas las operaciones de reconocimiento de texto. La clase OcrInput acepta varios formatos de imagen, incluidos PNG, JPEG, BMP, GIF y TIFF. Cuando se llama al método Read, la biblioteca procesa la imagen de entrada y devuelve un objeto OcrResult que contiene el texto reconocido.

La propiedad OcrResult.Text proporciona el contenido extraído como una cadena de texto sin formato, lista para su posterior procesamiento en su aplicación. Este código OCR gestiona internamente los complejos algoritmos de reconocimiento de caracteres y ofrece resultados de reconocimiento de gran precisión en distintos tipos de documentos.

¿Cómo puedo procesar documentos escaneados y archivos TIFF?

Las aplicaciones del mundo real suelen requerir el procesamiento de documentos escaneados de varias páginas almacenados como archivos TIFF. La biblioteca de OCR maneja estos escenarios de manera eficiente al permitir a los desarrolladores cargar rangos de páginas específicos o procesar documentos completos. Este código de ejemplo muestra cómo trabajar con imágenes TIFF de varios fotogramas.

using System;
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput())
        {
            // Load specific pages from a multi-page TIFF file
            int[] pageIndices = new int[] { 0, 1, 2 };
            input.LoadImageFrames(@"scanned-documents.tiff", pageIndices);
            // Apply image enhancement for better results
            input.Deskew();
            OcrResult result = ocr.Read(input);
            // Access page-by-page results
            foreach (var page in result.Pages)
            {
                Console.WriteLine($"Page {page.PageNumber}:");
                Console.WriteLine(page.Text);
            }
        }
    }
}
using System;
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput())
        {
            // Load specific pages from a multi-page TIFF file
            int[] pageIndices = new int[] { 0, 1, 2 };
            input.LoadImageFrames(@"scanned-documents.tiff", pageIndices);
            // Apply image enhancement for better results
            input.Deskew();
            OcrResult result = ocr.Read(input);
            // Access page-by-page results
            foreach (var page in result.Pages)
            {
                Console.WriteLine($"Page {page.PageNumber}:");
                Console.WriteLine(page.Text);
            }
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

SalidaOCR de un archivo TIFF de varias páginas

OCR en C# Tutorial de CodeProject: Extraer texto de imágenes con IronOCR: Imagen 2 - Salida TIFF OCR multipágina

El método LoadImageFrames acepta una ruta de archivo y una matriz de enteros que especifica qué páginas procesar. Este enfoque optimiza el rendimiento cuando sólo se necesitan páginas concretas de grandes archivos de documentos. El filtro Deskew corrige cualquier problema de rotación o alineación en las imágenes escaneadas, mejorando la calidad de la imagen y la precisión del OCR.

Cada página del resultado mantiene la información de maquetación, incluidos párrafos, líneas y palabras individuales. La API de OCR proporciona acceso a puntuaciones de confianza y datos de posicionamiento, lo que permite un sofisticado análisis de documentos más allá de la simple extracción de texto.

¿Cómo puedo tratar los errores del código OCR y mejorar los resultados del reconocimiento?

Las aplicaciones de producción requieren un tratamiento adecuado de los errores para gestionar diversos escenarios de excepción. Los problemas de calidad de la imagen, los formatos de archivo no compatibles o los archivos dañados pueden hacer que falle el proceso de OCR. La implementación del manejo de excepciones garantiza que su aplicación responda con elegancia a estas situaciones.

using System;
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        var ocr = new IronTesseract();
        // Configure the OCR engine for your language
        ocr.Language = OcrLanguage.English;
        try
        {
            using (var input = new OcrInput())
            {
                input.LoadImage(@"document.png");
                // Enhance low-quality images
                input.DeNoise();
                input.Deskew();
                OcrResult result = ocr.Read(input);
                if (result.Text.Length > 0)
                {
                    Console.WriteLine("Recognized text:");
                    Console.WriteLine(result.Text);
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"OCR Error: {ex.Message}");
        }
    }
}
using System;
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        var ocr = new IronTesseract();
        // Configure the OCR engine for your language
        ocr.Language = OcrLanguage.English;
        try
        {
            using (var input = new OcrInput())
            {
                input.LoadImage(@"document.png");
                // Enhance low-quality images
                input.DeNoise();
                input.Deskew();
                OcrResult result = ocr.Read(input);
                if (result.Text.Length > 0)
                {
                    Console.WriteLine("Recognized text:");
                    Console.WriteLine(result.Text);
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"OCR Error: {ex.Message}");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La propiedad Idioma configura qué paquete de idiomas utiliza el motor de OCR para el reconocimiento de texto. IronOCR es compatible con más de 125 idiomas, cada uno de ellos disponible como paquetes NuGet independientes. El filtro DeNoise elimina los artefactos digitales de los documentos escaneados, mientras que Deskew corrige la alineación; ambos elementos son fundamentales para obtener resultados de reconocimiento óptimos a partir de imágenes de origen imperfectas.

¿Cómo puedo crear un PDF con capacidad de búsqueda a partir de texto reconocido?

La conversión de documentos escaneados en archivos PDF con capacidad de búsqueda es una de las aplicaciones de OCR más valiosas. Los usuarios pueden buscar, seleccionar y copiar texto de documentos que antes sólo contenían imágenes. Esta transformación permite a los sistemas de gestión de documentos indexar los contenidos y mejorar la accesibilidad.

using System;
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput())
        {
            // Set document metadata
            input.Title = "Converted Document";
            // Load source images or existing PDF
            input.LoadImage(@"page1.png");
            input.LoadImage(@"page2.png");
            OcrResult result = ocr.Read(input);
            // Save as searchable PDF with embedded text layer
            result.SaveAsSearchablePdf(@"searchable-output.pdf");
            Console.WriteLine("Searchable PDF created successfully.");
            Console.WriteLine($"Total pages processed: {result.Pages.Count}");
        }
    }
}
using System;
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput())
        {
            // Set document metadata
            input.Title = "Converted Document";
            // Load source images or existing PDF
            input.LoadImage(@"page1.png");
            input.LoadImage(@"page2.png");
            OcrResult result = ocr.Read(input);
            // Save as searchable PDF with embedded text layer
            result.SaveAsSearchablePdf(@"searchable-output.pdf");
            Console.WriteLine("Searchable PDF created successfully.");
            Console.WriteLine($"Total pages processed: {result.Pages.Count}");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Documento PDF de salida con capacidad de búsqueda

OCR en C# Tutorial de CodeProject: Extraer Texto de Imágenes con IronOCR: Imagen 3 - PDF con capacidad de búsqueda creado a partir de imágenes de entrada

El método SaveAsSearchablePdf genera un archivo PDF que conserva el aspecto original de la imagen a la vez que incrusta una capa de texto invisible. Este enfoque preserva la fidelidad del documento garantizando que el resultado visual coincida exactamente con la fuente, al tiempo que permite la búsqueda de texto completo. Las aplicaciones de Microsoft Office, Adobe Reader y otros visores de PDF pueden buscar e indexar el texto reconocido.

Para las aplicaciones que requieren una salida HTML, IronOCR también proporciona el método SaveAsHocrFile, que exporta los resultados en el formato hOCR. Este estándar basado en XML incluye datos de posicionamiento por palabra, lo que permite visores de documentos basados en web y flujos de trabajo avanzados de análisis de texto.

Conclusión

Implementar el reconocimiento óptico de caracteres en proyectos de C# se convierte en algo sencillo con IronOCR. La biblioteca gestiona el procesamiento de imágenes complejas, admite varios formatos de imagen e idiomas y ofrece opciones de salida flexibles, incluida la generación de PDF con función de búsqueda. Desde la simple extracción de texto hasta el procesamiento de documentos TIFF de varias páginas, los ejemplos de este tutorial muestran los flujos de trabajo básicos que necesitan los desarrolladores.

La documentación de IronOCR proporciona ejemplos de código adicionales para filtros de imagen avanzados, lectura de códigos de barras y procesamiento de OCR específico de región. La API reference detalla todas las clases y métodos disponibles para crear soluciones integrales de procesamiento de documentos.

Empiece con IronOCR ahora.
green arrow pointer

¿Listo para implementar el OCR en tu próximo proyecto? Compra una licencia para desplegar IronOCR en entornos de producción con soporte completo y actualizaciones.

Preguntas Frecuentes

¿Qué es el OCR y en qué beneficia a los desarrolladores de C#?

El OCR, o reconocimiento óptico de caracteres, es una tecnología que convierte distintos tipos de documentos, como documentos en papel escaneados, PDF o imágenes capturadas por una cámara digital, en datos editables y que permiten realizar búsquedas. Para los desarrolladores de C#, el OCR simplifica el procesamiento de documentos al permitir que las aplicaciones extraigan texto de imágenes y documentos escaneados, lo que mejora la accesibilidad y usabilidad de los datos.

¿Cómo puedo implementar el OCR en un proyecto de C#?

Puede implementar el OCR en un proyecto de C# utilizando la biblioteca IronOCR. Esta biblioteca proporciona una interfaz fácil de usar para extraer texto de imágenes y documentos escaneados dentro de aplicaciones .NET, lo que simplifica la integración de la funcionalidad OCR en su proyecto.

¿Qué formatos de imagen son compatibles con IronOCR?

IronOCR es compatible con una amplia gama de formatos de imagen, incluidos JPEG, PNG, BMP, GIF y TIFF. Esta flexibilidad le permite trabajar con varios tipos de archivos de imagen para extraer texto de forma eficiente.

¿Puede IronOCR manejar archivos TIFF de varias páginas?

Sí, IronOCR puede manejar archivos TIFF de varias páginas. Proporciona capacidades para procesar y extraer texto de cada página dentro de un TIFF multipágina, lo que lo convierte en una solución ideal para manejar documentos complejos.

¿Es posible extraer texto de un área específica de una imagen utilizando IronOCR?

Sí, IronOCR permite especificar un área concreta de una imagen de la que extraer texto. Esta función es útil cuando necesita centrarse en una sección específica de un documento, como un formulario o una tabla.

¿Es IronOCR compatible con diferentes idiomas para la extracción de texto?

IronOCR admite la extracción de texto en varios idiomas, lo que le permite trabajar con documentos en varios idiomas sin problemas. Esta característica mejora la versatilidad de sus aplicaciones, atendiendo a una audiencia global.

¿Cuáles son las ventajas de utilizar IronOCR frente a otras bibliotecas de OCR?

IronOCR ofrece varias ventajas, como facilidad de uso, reconocimiento de texto fiable, compatibilidad con varios idiomas y compatibilidad con varios formatos de imagen. Sus potentes funciones y su rendimiento lo convierten en la opción preferida de los desarrolladores que desean implementar el reconocimiento óptico de caracteres en sus proyectos de C#.

¿Cómo mejora IronOCR la precisión del reconocimiento de texto?

IronOCR mejora la precisión del reconocimiento de texto mediante algoritmos avanzados y técnicas de aprendizaje automático. Puede manejar documentos difíciles con fuentes, tamaños y diseños variables, garantizando una alta precisión en la extracción de texto.

¿Es posible integrar IronOCR en las aplicaciones .NET existentes?

Sí, IronOCR puede integrarse fácilmente en las aplicaciones .NET existentes. Su sencilla API permite a los desarrolladores añadir funciones de OCR a sus aplicaciones con un esfuerzo mínimo, mejorando su funcionalidad sin grandes modificaciones.

¿Cuáles son algunos de los usos más comunes de IronOCR en aplicaciones C#?

IronOCR puede utilizarse en diversas aplicaciones de C#, como sistemas de gestión de documentos, automatización de la entrada de datos, archivado, extracción de texto de facturas y recibos y herramientas de accesibilidad para personas con discapacidad visual. Su versatilidad lo hace adecuado para una amplia gama de sectores y aplicaciones.

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