Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
OCR es una tecnología utilizada para transformar documentos de diversas naturalezas en datos editables y buscables. Convierte imágenes escaneadas, archivos PDF y fotos de cámaras digitales en datos que se pueden editar y buscar. Esta tecnología se utiliza ampliamente para convertir documentos impresos en formato digital con el fin de editarlos, buscarlos y almacenarlos, reduciendo el espacio físico ocupado por los documentos. OCRtiene un papel fundamental en la automatización de la entrada de datos, lo que ahorra mucho tiempo a las empresas y organizaciones al reducir el trabajo realizado por los recursos humanos.
Es un proceso que utiliza técnicas avanzadas de aprendizaje automático y reconocimiento de patrones para extraer texto con precisión de imágenes. Los últimos avances relacionados con OCR han aumentado su precisión, lo que permite soportar más idiomas y escrituras complejas como la escritura árabe. Muy necesario en finanzas, salud, legislación y educación, el OCR surgió como una herramienta indispensable donde el procesamiento rápido de varios documentos impresos era un requisito previo. Este artículo utilizará Tesseract para realizar OCR en imágenes de datos en múltiples idiomas.
Primero, instala el paquete NuGet de IronOCR/Tesseract dentro de tu proyecto .NET.
Se creará una instancia de la clase IronTesseract, inicializando además el motor OCR.
Está diseñado para que la propiedad de idioma admita más de un idioma.
Especifique la ruta del archivo de imagen que desea procesar y luego cree un objeto OcrInput.
Ahora, realiza OCR en la imagen de entrada utilizando la función Read de la instancia de IronTesseract.
Tesseract es un motor de reconocimiento óptico de caracteres de código abierto desarrollado por Hewlett-Packard y posteriormente mantenido por Google. Es famoso por su alta precisión y adaptabilidad, lo que lo convierte en uno de los OCR más destacados. Tesseract admite detección de escritura, reconoce texto en muchos idiomas y puede manejar múltiples idiomas; Por lo tanto, generalmente se utiliza para proyectos que requieren documentos multilingües y soporte.
El motor OCR Tesseract trabaja con la información contenida en cualquier píxel de la imagen, siguiendo patrones que representan caracteres, palabras y oraciones que eventualmente se convierten en texto legible por máquina. Los muchos tipos de archivos de imagen que soporta, como TIFF, JPEG y PNG, permiten a Tesseract producir texto en formatos como texto plano, HTML y PDF con capacidad de búsqueda.
Una de las ventajas significativas de Tesseract es que se puede entrenar para ser sensible a fuentes particulares o a nuevos idiomas añadidos. También se utiliza con frecuencia en diversas aplicaciones, que van desde la simple extracción de texto hasta tareas complejas en la digitalización de documentos históricos, el procesamiento de facturas o incluso software de accesibilidad que permite la lectura para personas con discapacidad visual.
Abre el programa Visual Studio. Al abrir el programa, dirígete al "menú archivo." Bajo el "menú archivo," existe la opción "nuevo proyecto." Bajo "nuevo proyecto," haz clic en "Aplicación de Consola." En esta publicación, crearemos documentos PDF utilizando un programa de consola.
Ingrese el nombre de su proyecto y la ubicación del archivo en los cuadros de texto proporcionados. Luego, como se muestra en la imagen a continuación, haga clic en el botón Crear y seleccione el .NET Framework que necesita.
Ahora que se ha seleccionado la versión de la aplicación, el proyecto de Visual Studio creará su estructura. Si ha elegido las versiones de consola, Windows o web, se abrirá el archivo de programa .cs para agregar código y construir/ejecutar la aplicación.
El primer paso es descargar e instalar el software Tesseract OCR en tu computadora. Aquí está el repositorio oficial de Tesseract en GitHub con el instalador de Tesseract: https://github.com/tesseract-ocr/tesseract.
Lo mejor sería instalar Tesseract OCR en tu computadora siguiendo las instrucciones de configuración específicas para tu sistema operativo, ya sea Windows, macOS o Linux. Una vez instalado, añade el paquete Tesseract.NET a tu proyecto de C# utilizando el Administrador de Paquetes NuGet de Visual Studio.
Abre el Administrador de Paquetes NuGet en tu proyecto de Visual Studio desde Herramientas -> Administrador de Paquetes NuGet -> Administrar Paquetes NuGet para la Solución. Luego, busca "Tesseract" en el Administrador de Paquetes NuGet para obtener el paquete "Tesseract" o "Tesseract.NET". Seleccione este paquete y haga clic en el botón Instalar para instalarlo en su proyecto.
Debe configurar Tesseract en su proyecto de C# para especificar la ubicación del ejecutable de Tesseract OCR y los archivos de datos del lenguaje después de instalar la envoltura de Tesseract.NET. He aquí un ejemplo:
using System;
using System.Drawing;
using Tesseract;
class Program
{
static void Main()
{
// Set the path to the Tesseract data files (traineddata files)
string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files
// Load the image
string imagePath = @"path_to_your_image.png";
using (var img = Pix.LoadFromFile(imagePath))
{
// Add tesseract languages into engine
using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
{
using (var page = engine.Process(img))
{
// Extract the text
string text = page.GetText();
Console.WriteLine("Recognized Text:");
Console.WriteLine(text);
}
}
}
}
}
using System;
using System.Drawing;
using Tesseract;
class Program
{
static void Main()
{
// Set the path to the Tesseract data files (traineddata files)
string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files
// Load the image
string imagePath = @"path_to_your_image.png";
using (var img = Pix.LoadFromFile(imagePath))
{
// Add tesseract languages into engine
using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
{
using (var page = engine.Process(img))
{
// Extract the text
string text = page.GetText();
Console.WriteLine("Recognized Text:");
Console.WriteLine(text);
}
}
}
}
}
Imports System
Imports System.Drawing
Imports Tesseract
Friend Class Program
Shared Sub Main()
' Set the path to the Tesseract data files (traineddata files)
Dim tessDataPath As String = "./tessdata" ' Ensure this directory contains the language data files
' Load the image
Dim imagePath As String = "path_to_your_image.png"
Using img = Pix.LoadFromFile(imagePath)
' Add tesseract languages into engine
Using engine = New TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default)
Using page = engine.Process(img)
' Extract the text
Dim text As String = page.GetText()
Console.WriteLine("Recognized Text:")
Console.WriteLine(text)
End Using
End Using
End Using
End Sub
End Class
El código anterior explica cómo Tesseract OCR puede detectar y extraer texto de imágenes que contienen múltiples idiomas. Inicialmente establece la ruta a los archivos de datos de idioma de Tesseract. Los archivos .traineddata necesarios para cada idioma correspondiente, como inglés, español y francés, deben estar presentes en la ruta.
Carga una imagen especificada por imagePath en el método Pix.LoadFromFile. Más específicamente, uno esperaría una imagen con texto en inglés, español y francés. Luego, se inicializará una instancia de TesseractEngine con rutas a los archivos de datos de idioma y los idiomas de interés, "eng+spa+fra," para reconocer el texto. El motor funcionará en modo predeterminado.
La imagen se pasará al método Process de la clase del motor, en el cual se analiza, se extrae el contenido de texto y se almacena en la variable text. Por último, el texto extraído se imprimirá en la consola, creando una visualización de cómo funciona el OCR.
IronOCR es una biblioteca OCR propietaria centrada en Dot NET. Agrega capacidades de OCR a aplicaciones .NET y permite la extracción de texto de imágenes, documentos escaneados, PDFs y todos los demás medios visuales. Impulsando el reconocimiento de texto de última generación con el increíblemente exitoso motor Tesseract, IronOCR también incluye varias características adicionales que lo hacen adecuado para su uso en aplicaciones empresariales.
Esto hace que IronOCR sea extremadamente bueno: su tremendo soporte de idiomas, con más de 120 idiomas y soporte para la detección automática de idiomas y el procesamiento de documentos que contienen varios idiomas simultáneamente. A su vez, esto hace que IronOCR sea muy versátil y se pueda desplegar a nivel mundial, donde el procesamiento de documentos multilingües es sumamente crítico.
Por otro lado, IronOCR aún enfatiza la simplicidad en el uso e integración. Su API extremadamente fácil de usar está complementada por documentación detallada y un conjunto de proyectos de ejemplo que ayudarán a cualquier desarrollador a comenzar rápidamente. Admite una amplia gama de formatos de imagen y documentos PDF. Las funciones avanzadas integradas de preprocesamiento de imágenes, reducción de ruido y corrección de errores mejoran la precisión y el rendimiento de OCR.
Puede instalar los paquetes directamente en su solución utilizando la herramienta de gestión de paquetes NuGet de Visual Studio. La siguiente captura de pantalla muestra cómo abrir el Administrador de paquetes NuGet.
Tiene un cuadro de búsqueda incrustado, que debe mostrar una lista de paquetes del sitio web de NuGet. Como se puede ver en la captura de pantalla a continuación, buscaremos en el administrador de paquetes la frase IronOCR:
El gráfico anterior podría ofrecer una lista de términos de búsqueda válidos. Necesitamos seleccionar lo que es necesario para instalar el paquete de soluciones.
Además, instala los paquetes de idioma Tesseract necesarios uno por uno, como el siguiente en este ejemplo.
En este ejemplo, usaremos los códigos de idioma español, francés e inglés. El inglés es el paquete de idioma predeterminado, por lo que no requiere instalación.
Instala Spanish desde el paquete NuGet.
El siguiente ejemplo demuestra cómo reconocer texto en múltiples idiomas a partir de una imagen utilizando C# y el motor IronOCR y Tesseract.
using IronOcr;
class Program
{
static void Main(string[] args)
{
// Initialize IronTesseract engine
var Ocr = new IronTesseract();
// Add multiple languages
Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;
// Path to the image
var inputFile = @"path\to\your\image.png";
// Read the image and perform OCR
using (var input = new OcrInput(inputFile))
{
// Perform OCR
var result = Ocr.Read(input);
// Display the result
Console.WriteLine("Text:");
Console.WriteLine(result.Text);
}
}
}
using IronOcr;
class Program
{
static void Main(string[] args)
{
// Initialize IronTesseract engine
var Ocr = new IronTesseract();
// Add multiple languages
Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;
// Path to the image
var inputFile = @"path\to\your\image.png";
// Read the image and perform OCR
using (var input = new OcrInput(inputFile))
{
// Perform OCR
var result = Ocr.Read(input);
// Display the result
Console.WriteLine("Text:");
Console.WriteLine(result.Text);
}
}
}
Imports IronOcr
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize IronTesseract engine
Dim Ocr = New IronTesseract()
' Add multiple languages
Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French
' Path to the image
Dim inputFile = "path\to\your\image.png"
' Read the image and perform OCR
Using input = New OcrInput(inputFile)
' Perform OCR
Dim result = Ocr.Read(input)
' Display the result
Console.WriteLine("Text:")
Console.WriteLine(result.Text)
End Using
End Sub
End Class
El programa C# anterior es un ejemplo de uso de la biblioteca IronOCR para realizar el reconocimiento óptico de caracteres en una imagen que contiene caracteres en inglés, español y francés. Este ejemplo comienza importando el espacio de nombres que requiere IronOCR, seguido de la declaración de una clase llamada programa con un método Main, que es el punto de entrada de la aplicación.
Primero, en el método Main, se instancia una instancia de la clase IronTesseract. Esta instancia se asignará a la variable Ocr. Entonces, elPropiedad de idiomade esta instancia está configurado para incluir inglés, español y francés combinando OcrLanguage.English, OcrLanguage.Spanish y OcrLanguage.French. Todo esto garantizará que el motor de OCR pueda reconocer y procesar texto en cualquiera de estos tres idiomas.
Primero, establece la ruta al archivo de imagen de entrada utilizando la variable inputFile. En la siguiente línea, carga esta imagen dentro de una declaración en la clase OcrInput para la gestión y eliminación adecuada de recursos. Finalmente, llama al método Read de la instancia de IronTesseract con el objeto de entrada y realiza laOCR en la imagen.
Finalmente, se verifica el resultado para el texto reconocido y se imprime en la consola. Estas declaraciones de Console.WriteLine mostrarán el texto detectado para que el usuario pueda ver los resultados del OCR. El programa ilustra una manera efectiva de usar la capacidad multilingüe de IronOCR para extraer texto de imágenes de palabras en diferentes idiomas.
Es bastante fácil de usar en comparación con Tesseract y tiene algunas ventajas sobre este último. En primer lugar, IronOCR ofrece un excelente soporte de idiomas. El motor admite 127 idiomas directamente, mientras que para Tesseract, hay informes que indican soporte para unos 100 idiomas. sin embargo, a menudo, requiere configuraciones complejas y formación adicional para obtener el mejor rendimiento. Además, IronOCR es más fácil de usar, ya que se integra fácilmente en aplicaciones .NET y completa la documentación.
Mucho más fácil de usar que Tesseract, IronOCR tiene una curva de aprendizaje menos pronunciada y requiere menos configuración técnica. Como si eso no fuera suficiente, IronOCR viene con un procesamiento de imagen avanzado y actualizaciones regulares de funcionalidad para una mejor precisión y fiabilidad con tipos de documentos complejos y variados. IronOCR es una opción mucho mejor para cualquier desarrollador que busque una solución OCR sólida, versátil y de fácil aplicación.
Aunque Tesseract e IronOCR representan tecnologías de OCR muy robustas, cada una tiene capacidades y fortalezas únicas. Nuevamente, dado que es de código abierto, ampliamente utilizado y en una posición de liderazgo en cuanto a disponibilidad y flexibilidad de idiomas, Tesseract se destaca. Es confiable para cualquiera que busque una solución gratuita con comunidades activas y mejora continua.
En contraste, IronOCR es una biblioteca propietaria del .NET Framework que ha mejorado la experiencia del usuario con una integración más sencilla y un excelente soporte para la mayoría de los tipos de archivos de imagen. También presenta un rendimiento sobresaliente en el reconocimiento de texto, entre los cuales se destaca el manejo de contenido de imágenes de baja calidad. IronOCR admite completamente muchos idiomas y tiene algunas características adicionales que lo hacen más fácil de usar y completo para el desarrollador que busca facilidad y soporte total.
Una edición de desarrollo económica está disponible para IronOCR. Cuando compras el paquete de IronOCR, recibes una licencia de por vida. Dado que las ofertas de IronOCR comienzan en 749$, un costo único para múltiples sistemas, ofrece una excelente relación calidad-precio. Ofrece soporte en línea de ingenieros 24/7 a los usuarios con licencia de IronOCR. Consulte elIronOCRsitio web para obtener más información sobre la tarifa; para obtener más información sobre los productos de Iron Software, consulteaquí.
9 productos API .NET para sus documentos de oficina