Cómo obtener texto de imágenes usando Tesseract
Aprovechar bibliotecas como IronOCR y Tesseract otorga a los desarrolladores acceso a algoritmos avanzados y técnicas de aprendizaje automático para extraer información textual de imágenes y documentos escaneados. Este tutorial mostrará a los lectores cómo utilizar la biblioteca Tesseract para realizar la extracción de texto de imágenes, y luego concluirá presentando el enfoque único de IronOCR.
1. OCR con Tesseract
1.1. Instalar Tesseract
Usando la Consola del Administrador de Paquetes NuGet, ingrese el siguiente comando:
Install-Package Tesseract
O descargue el paquete a través del Administrador de Paquetes NuGet.
Instalar paquete Tesseract en el Administrador de Paquetes NuGet
Debe instalar y guardar manualmente los archivos de idioma en la carpeta del proyecto después de instalar el Paquete NuGet. Esto puede considerarse una limitación de esta biblioteca específica.
Visite la siguiente página web para descargar los archivos de idioma. Una vez descargados, descomprima los archivos y añada la carpeta "tessdata" a la carpeta de depuración de su proyecto.
1.2. Uso de Tesseract (Inicio rápido)
El OCR de una imagen dada se puede realizar usando el siguiente código fuente:
using Tesseract;
class Program
{
static void Main()
{
// Initialize Tesseract engine with English language data
using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// Load the image to be processed
using var img = Pix.LoadFromFile("Demo.png");
// Process the image to extract text
using var res = ocrEngine.Process(img);
// Output the recognized text
Console.WriteLine(res.GetText());
Console.ReadKey();
}
}using Tesseract;
class Program
{
static void Main()
{
// Initialize Tesseract engine with English language data
using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// Load the image to be processed
using var img = Pix.LoadFromFile("Demo.png");
// Process the image to extract text
using var res = ocrEngine.Process(img);
// Output the recognized text
Console.WriteLine(res.GetText());
Console.ReadKey();
}
}Imports Tesseract
Friend Class Program
Shared Sub Main()
' Initialize Tesseract engine with English language data
Dim ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)
' Load the image to be processed
Dim img = Pix.LoadFromFile("Demo.png")
' Process the image to extract text
Dim res = ocrEngine.Process(img)
' Output the recognized text
Console.WriteLine(res.GetText())
Console.ReadKey()
End Sub
End Class- Primero, se debe crear un objeto
TesseractEngine, cargando los datos del idioma en el motor. - Luego se carga el archivo de imagen deseado con la ayuda de
Pix.LoadFromFile. - La imagen se pasa al
TesseractEnginepara extraer texto utilizando el métodoProcess. - El texto reconocido se obtiene con el método
GetTexty se imprime en la consola.
Texto extraído de la imagen
1.3 Consideraciones sobre el Tesseract
- Tesseract soporta el formato de texto de salida, datos posicionales de OCR y análisis de diseño de página desde la versión 3.00.
- Tesseract está disponible en Windows, Linux y MacOS, aunque se confirma principalmente que funciona como se espera en Windows y Ubuntu debido al soporte de desarrollo limitado.
- Tesseract puede distinguir entre texto monoespaciado y con espaciado proporcional.
- Utilizando un front-end como OCRopus, Tesseract es ideal para ser utilizado como un back-end y puede utilizarse para trabajos de OCR más exigentes, como el análisis de diseño.
- Algunas de las limitaciones de Tesseract:
- Las últimas compilaciones no han sido diseñadas para compilarse en Windows
- Los envoltorios de la API de C# de Tesseract se mantienen con poca frecuencia y están años retrasados respecto a los nuevos lanzamientos de Tesseract
Para aprender más sobre Tesseract en C#, por favor visite el tutorial de Tesseract.
2. OCR con IronOCR
2.1. Instalación de IronOCR
Ingrese el siguiente comando en la Consola del Administrador de Paquetes NuGet:
Install-Package IronOcr
O instale la biblioteca IronOCR a través del Administrador de Paquetes NuGet, junto con paquetes adicionales para otros idiomas, que son simples y convenientes de usar.
Instalar IronOcr y paquetes de idiomas a través del Administrador de Paquetes NuGet
2.2. Uso de IronOCR
A continuación se muestra un código de ejemplo para reconocer el texto de la imagen dada:
using IronOcr;
class Program
{
static void Main()
{
// Create an IronTesseract instance with predefined settings
var ocr = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
};
// Create an OcrInput instance for image processing
using var input = new OcrInput();
// Load the image to be processed
input.AddImage("Demo.png");
// Process the image and extract text
var result = ocr.Read(input);
// Output the recognized text
Console.WriteLine(result.Text);
Console.ReadKey();
}
}using IronOcr;
class Program
{
static void Main()
{
// Create an IronTesseract instance with predefined settings
var ocr = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
};
// Create an OcrInput instance for image processing
using var input = new OcrInput();
// Load the image to be processed
input.AddImage("Demo.png");
// Process the image and extract text
var result = ocr.Read(input);
// Output the recognized text
Console.WriteLine(result.Text);
Console.ReadKey();
}
}Imports IronOcr
Friend Class Program
Shared Sub Main()
' Create an IronTesseract instance with predefined settings
Dim ocr = New IronTesseract() With {
.Language = OcrLanguage.EnglishBest,
.Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
}
' Create an OcrInput instance for image processing
Dim input = New OcrInput()
' Load the image to be processed
input.AddImage("Demo.png")
' Process the image and extract text
Dim result = ocr.Read(input)
' Output the recognized text
Console.WriteLine(result.Text)
Console.ReadKey()
End Sub
End Class- Este código inicializa un objeto
IronTesseract, configurando el idioma y la versión de Tesseract. - Luego se crea un objeto
OcrInputpara cargar archivos de imagen utilizando el métodoAddImage. - El método
ReaddeIronTesseractprocesa la imagen y extrae el texto, que luego se imprime en la consola.
Salida de texto extraído usando la biblioteca IronOCR
2.3 Consideraciones sobre IronOCR
- IronOCR es una extensión de la biblioteca Tesseract, introduciendo más estabilidad y mayor precisión.
- IronOCR puede leer contenido textual de PDFs y fotos. También puede leer más de 20 tipos distintos de códigos de barras y códigos QR.
- La salida puede ser rendida ya sea como texto simple, datos estructurados, códigos de barras o códigos QR.
- La biblioteca reconoce 125 idiomas en todo el mundo.
- IronOCR funciona en todos los entornos .NET de manera flexible (consola, Web, escritorio, etc.), y también soporta los últimos marcos móviles como Mono, Xamarin, Azure y MAUI.
- IronOCR ofrece una prueba gratuita y tiene una edición de desarrollo que es menos costosa. Aprenda más sobre las licencias.
Para un tutorial detallado de IronOCR, consulte este artículo para leer texto de una imagen en C#.









