HERRAMIENTAS OCR

Cómo obtener texto de imágenes con Tesseract

Actualizado 6 de junio, 2023
Compartir:

El uso de bibliotecas como IronOCR y Tesseract permite a los desarrolladores acceder 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 concluirá presentando el enfoque único de IronOCR.

1. OCR con Tesseract

1.1. Instalar Tesseract

Utilizando la consola del gestor de paquetes NuGet, introduzca el siguiente comando.

Install-Package Tesseract

O descargue el paquete a través del gestor de paquetes NuGet.

Cómo obtener el reconocimiento de texto OCR, Figura 1: Instalar el paquete Tesseract en el gestor de paquetes NuGet

Instale el paquete Tesseract en el gestor 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 deficiencia de esta biblioteca específica.

Visite sitio web para descargar los archivos de idioma. Una vez descargados, descomprime los archivos y añade la carpeta "tessdata" a la carpeta de depuración de tu proyecto.

1.2. Utilización de Tesseract (inicio rápido)

El OCR de una imagen dada puede realizarse utilizando el código fuente que se muestra a continuación:

using Tesseract;

var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
var img = Pix.LoadFromFile("Demo.png");
var res = ocrEngine.Process(img);
Console.WriteLine(res.GetText());
Console.ReadKey();
using Tesseract;

var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
var img = Pix.LoadFromFile("Demo.png");
var res = ocrEngine.Process(img);
Console.WriteLine(res.GetText());
Console.ReadKey();
Imports Tesseract

Private ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)
Private img = Pix.LoadFromFile("Demo.png")
Private res = ocrEngine.Process(img)
Console.WriteLine(res.GetText())
Console.ReadKey()
VB   C#

Primero, se debe crear un objeto TerreractEngine y cargar los datos del lenguaje en el Motor. A continuación, se carga el archivo de imagen deseado con la ayuda de Tesseract Pix. A continuación, esta imagen se pasa al TerreractEngine para extraer el texto reconocido correcto mediante el método GetText disponible en el TesseractEngine. Este es el resultado del código.

Cómo obtener reconocimiento de texto OCR, Figura 2: Texto extraído de la imagen

**Texto extraído de la imagen

1.3 Consideraciones sobre Tesseract

  1. A partir de la versión 3.00, Tesseract admite formato de texto de salida, datos posicionales de OCR y análisis de diseño de página.
  2. Tesseract está disponible en Windows, Linux y Mac OS X. Sin embargo, sólo se ha confirmado que Tesseract funciona como estaba previsto en Windows y Ubuntu, debido al limitado soporte de desarrollo.
  3. Tesseract puede distinguir entre texto monoespaciado y texto con espaciado proporcional.
  4. Utilizando un front-end como OCRopus, Tesseract es ideal para su uso como back-end y puede utilizarse para trabajos de OCR más exigentes, como el análisis de diseño.
  5. Algunos de los defectos de Tesseract:

    • Las últimas versiones no se han diseñado para compilar en Windows
    • Las envolturas de la API C# de Tesseract se mantienen con poca frecuencia y llevan años de retraso con respecto a las nuevas versiones de Tesseract.

    Para obtener más información sobre Tesseract en C#, visite el tutorial de Tesseract.

2. OCR con IronOCR

2.1. Instalación de IronCR

Introduzca el siguiente comando en la consola de NuGet Package Manager.

Install-Package IronOcr

O instale la biblioteca IronOCR a través del gestor de paquetes NuGet, junto con paquetes adicionales para otros idiomas, que son sencillos y cómodos de usar.

Cómo obtener el reconocimiento de texto OCR, Figura 3: Instalar IronOcr y los paquetes de idiomas a través de NuGet Package Manager

Instale IronOcr y los paquetes de idiomas a través del Gestor de paquetes NuGet.

2.2. Utilización de IronOCR

A continuación se muestra el código de ejemplo para reconocer el texto de la imagen dada.

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var input = new OcrInput())      
{          
    input.LoadImage(@"Demo.png");
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var input = new OcrInput())      
{          
    input.LoadImage(@"Demo.png");
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
Dim ocr = New IronTesseract()
ocr.Language = OcrLanguage.EnglishBest
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using input = New OcrInput()
	input.LoadImage("Demo.png")
	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
	Console.ReadKey()
End Using
VB   C#

El código anterior crea una instancia IronTesseract objeto. Además, un OcrInput para añadir uno o varios archivos de imagen, indicando la ruta del archivo local con CargarImagen método. Puedes subir todas las fotos que quieras. La funcionalidad Leer en el Objeto IronTesseract analizará el archivo de imagen y extraerá el resultado del OCR.

Cómo obtener reconocimiento de texto OCR, Figura 4: Salida de texto extraído mediante la biblioteca IronOCR

Salida de texto extraído utilizando la biblioteca IronOCR

2.3 Consideraciones sobre IronOCR

  1. IronOCR es una extensión de la biblioteca Tesseract, que introduce más estabilidad y mayor precisión.
  2. IronOCR puede leer el contenido de texto de PDFs y fotos IronOCR también puede leer más de 20 tipos distintos de códigos de barras y códigos QR.
  3. Los resultados pueden presentarse como texto sin formato, datos estructurados, códigos de barras o códigos QR.
  4. La biblioteca reconoce 127 idiomas en todo el mundo.
  5. IronOCR funciona en todos los entornos .NET de forma flexible (consola, Web, escritorio, etc.)y también es compatible con los marcos móviles más recientes, como Mono, Xamarin, Azure y MAUI.
  6. IronOCR ofrece un prueba gratuita y tiene una edición de desarrollo más económica. Aprenda más información sobre licencias.

    Para un tutorial detallado de IronOCR, consulte este enlace artículo para leer texto de una imagen en C#.

< ANTERIOR
OCR C# Open Source (Lista para desarrolladores)
SIGUIENTE >
Mejor API de OCR (Comparación de listas actualizada)

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

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