Saltar al pie de página
HERRAMIENTAS OCR
Cómo usar Tesseract OCR para .NET en Windows

Tesseract OCR en Windows (Tutorial de ejemplo de código)

¿Qué es Tesseract OCR?

Tesseract es un motor de reconocimiento óptico de caracteres que se puede utilizar en una variedad de sistemas operativos. Es un software gratuito, liberado bajo la Licencia Apache. En esta guía, te llevaré a través de los pasos que seguí para instalar Tesseract en mi máquina con Windows 10. La versión principal 5 es la versión estable actual y comenzó con el lanzamiento 5.0.0 el 30 de noviembre de 2021.


Paso 1: Instale Tesseract OCR en Windows 10 usando el archivo .exe:

Para instalar datos de idioma: sudo port install tesseract -<langcode> Una lista de códigos de idioma se encuentra en la página Homebrew de Tesseract de MacPorts. El primer paso para instalar Tesseract OCR en Windows es descargar el instalador .exe que corresponda al sistema operativo de tu máquina.

Paso 2: Configurar la instalación

A continuación, necesitaremos configurar la instalación de Tesseract. Si te sientes seguro y solo quieres ejecutar Tesseract OCR para Windows con el idioma predeterminado en inglés, avanzar en las pantallas de instalación con todas las opciones predeterminadas seleccionadas debería funcionar.

Idioma del instalador

Este es solo el idioma para los cuadros de diálogo y la información de ayuda. Si queremos, podemos ejecutar Tesseract OCR para Windows en varios idiomas:

Tesseract Ocr Windows 1 related to Idioma del instalador

Idioma del instalador para Tesseract OCR en Windows

Configuración de OCR de Tesseract

La pantalla de configuración recomienda que se cierren todas las demás aplicaciones antes de continuar con la instalación.

Tesseract Ocr Windows 2 related to Configuración de OCR de Tesseract

La pantalla de instalación de Tesseract OCR para Windows.

Elija la ubicación de instalación

A continuación, elegiremos la ubicación de la instalación. Antes de proceder al siguiente paso, asegúrate de copiar la ubicación de instalación a un archivo .txt. Necesitaremos agregar la ubicación de instalación a las variables de entorno de nuestra máquina una vez que la instalación esté completa.

Tesseract Ocr Windows 3 related to Elija la ubicación de instalación

Elegir la ubicación de la instalación.

Elegir componentes

Por defecto, están seleccionadas las opciones de ScrollView, Training Tools, creación de accesos directos y datos de idioma. A menos que tengas una razón específica para no instalar estos, querrás mantener todos estos seleccionados.

Tesseract Ocr Windows 4 related to Elegir componentes

Componentes de instalación predeterminada de Tesseract OCR para Windows.

Si bajamos y expandimos los 'Datos adicionales de script', veremos que tenemos la opción de descargar e instalar datos adicionales de script. Esto puede ser útil para mejorar la precisión de la extracción de texto de ciertos lenguajes de script. Depende de ti si quieres instalar estos.

Tesseract Ocr Windows 5 related to Elegir componentes

Componentes opcionales de instalación de script.

Seleccione la carpeta del menú Inicio

En el último paso de la instalación, se nos pedirá que elijamos la carpeta del menú de inicio para los accesos directos de Tesseract OCR para Windows. Dejé el mío configurado al nombre predeterminado: 'Tesseract-OCR'.

Tesseract Ocr Windows 6 related to Seleccione la carpeta del menú Inicio

Elige la carpeta del menú de inicio para los accesos directos de Tesseract OCR en Windows.

Después de hacer clic en instalar, Tesseract OCR para Windows comenzará a instalarse. El siguiente paso es agregar la ruta de instalación a las variables de entorno de nuestra máquina.

Paso 3: Agregar la ruta de instalación a las variables de entorno

Panel de control

Para agregar la ubicación de instalación a nuestras variables de entorno, ve al menú de Inicio y busca 'variables de entorno'. Deberías ver un resultado para editar las variables de entorno del sistema. Si no lo ves, siempre puedes usar los siguientes pasos: Menú de inicio > Panel de control > Editar las variables de entorno del sistema.

Tesseract Ocr Windows 7 related to Panel de control

Buscando 'variables de entorno'

Propiedades del sistema

Cuando se presente el cuadro de diálogo 'Propiedades del sistema', querrás asegurarte de que la pestaña Avanzado esté seleccionada, luego haz clic en el botón de Variables de entorno hacia la parte inferior derecha de la pantalla.

Tesseract Ocr Windows 8 related to Propiedades del sistema

Variables de entorno

Bajo variables del sistema, haremos clic en el botón Editar.

Tesseract Ocr Windows 9 related to Variables de entorno

Cuando se presente la pantalla de "Editar variable de entorno", haz clic en el botón Nuevo, y pega la ruta de instalación de Tesseract OCR que copiamos anteriormente en el Paso 2. Una vez que hayas hecho esto, haz clic en el botón 'OK'.

Agregar el directorio de instalación de Tesseract OCR para Windows a las variables de entorno

Tesseract Ocr Windows 10 related to Agregar el directorio de instalación de Tesseract OCR para Windows a las variables ...

¡Eso es todo! Ahora que hemos ejecutado el instalador .exe y agregado la ubicación de instalación de Tesseract OCR en Windows a nuestras variables de entorno, podemos probar que nuestra instalación está funcionando ejecutando Tesseract en una imagen de prueba.

Paso 4: Ejecute Tesseract OCR para Windows en una imagen de prueba

Para probar que Tesseract OCR para Windows se instaló correctamente, abre el símbolo del sistema en tu máquina y luego ejecuta el comando Tesseract. Deberías ver un resultado con una explicación rápida de las opciones de uso de Tesseract.

Tesseract Ocr Windows 11 related to Paso 4: Ejecute Tesseract OCR para Windows en una imagen de prueba

Comprobando la instalación exitosa de Tesseract OCR en Windows

¡Felicitaciones! Has instalado correctamente Tesseract OCR en Windows en tu máquina.


Ventajas de utilizar IronOCR para realizar trabajos de OCR:

IronOCR provides Tesseract OCR on Mac, Windows, Linux, Azure and Docker for:

  • .NET Framework 4.0 +
  • .NET Standard 2.0 +
  • .NET Core 2.0 +
  • .NET 5
  • Mono para macOS y Linux
  • Xamarin para macOS

IronOCR lee texto, códigos de barras y códigos QR de todos los formatos de imagen y PDF principales utilizando el último motor Tesseract 5. Esta biblioteca agrega funcionalidad OCR a aplicaciones de escritorio, consola y web en minutos. Soporta 125+ idiomas internacionales. Licenses start from $799.

Paso 1: Instale la última versión de IronOCR

Instalar DLL

Download the IronOcr DLL directly to your machine.

Instalar NuGet

Alternativamente, puedes instalarlo a través de NuGet con el siguiente comando:

Install-Package IronOcr

Paso 2: Aplique su clave de licencia

Establezca su clave de licencia de IronOCR mediante código

Agrega este código al inicio de tu aplicación antes de que se use IronOCR.

IronOcr.Installation.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.Installation.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.Installation.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"
$vbLabelText   $csharpLabel

Paso 3: Prueba tu clave

Prueba si tu clave ha sido instalada correctamente.

bool isValidLicense = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
bool isValidLicense = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
Dim isValidLicense As Boolean = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01")
$vbLabelText   $csharpLabel

Empezar con el proyecto

// PM > Install-Package IronOcr
// using IronOcr;

var Ocr = new IronTesseract();

// Set the recognition language to English
Ocr.Language = OcrLanguage.English;

using (var Input = new OcrInput())
{
    // Add an example image to the OCR input
    Input.Add(@"img\example.tiff");

    // Optional: Clean the image before processing
    // Input.DeNoise();
    // Input.Deskew();

    // Read the text from the image
    IronOcr.OcrResult result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(result.Text);

    // Explore the OcrResult using IntelliSense
}
// PM > Install-Package IronOcr
// using IronOcr;

var Ocr = new IronTesseract();

// Set the recognition language to English
Ocr.Language = OcrLanguage.English;

using (var Input = new OcrInput())
{
    // Add an example image to the OCR input
    Input.Add(@"img\example.tiff");

    // Optional: Clean the image before processing
    // Input.DeNoise();
    // Input.Deskew();

    // Read the text from the image
    IronOcr.OcrResult result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(result.Text);

    // Explore the OcrResult using IntelliSense
}
' PM > Install-Package IronOcr
' using IronOcr;

Dim Ocr = New IronTesseract()

' Set the recognition language to English
Ocr.Language = OcrLanguage.English

Using Input = New OcrInput()
	' Add an example image to the OCR input
	Input.Add("img\example.tiff")

	' Optional: Clean the image before processing
	' Input.DeNoise();
	' Input.Deskew();

	' Read the text from the image
	Dim result As IronOcr.OcrResult = Ocr.Read(Input)

	' Output the recognized text
	Console.WriteLine(result.Text)

	' Explore the OcrResult using IntelliSense
End Using
$vbLabelText   $csharpLabel

¿Cómo utilizar Tesseract OCR en C# para .NET?

  • Instalar Google Tesseract e IronOCR en .NET en Visual Studio
  • Verificar las últimas compilaciones en C#
  • Revisar precisión y compatibilidad de imagen
  • Probar rendimiento y función de la API
  • Considerar soporte multilingüe

Ejemplo de código para el uso de OCR .NET: Extraer texto de imágenes en C

Usa el Administrador de Paquetes de NuGet para instalar el Paquete NuGet de IronOCR en tu solución de Visual Studio.

// PM > Install-Package IronOcr
// using IronOcr;

var Ocr = new IronTesseract();

// Set the recognition language to English
Ocr.Language = OcrLanguage.English;

using (var Input = new OcrInput())
{
    // Add an example image to the OCR input
    Input.Add(@"img\example.tiff");

    // Optional: Clean the image before processing
    // Input.DeNoise();
    // Input.Deskew();

    // Read the text from the image
    IronOcr.OcrResult result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(result.Text);

    // Explore the OcrResult using IntelliSense
}
// PM > Install-Package IronOcr
// using IronOcr;

var Ocr = new IronTesseract();

// Set the recognition language to English
Ocr.Language = OcrLanguage.English;

using (var Input = new OcrInput())
{
    // Add an example image to the OCR input
    Input.Add(@"img\example.tiff");

    // Optional: Clean the image before processing
    // Input.DeNoise();
    // Input.Deskew();

    // Read the text from the image
    IronOcr.OcrResult result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(result.Text);

    // Explore the OcrResult using IntelliSense
}
' PM > Install-Package IronOcr
' using IronOcr;

Dim Ocr = New IronTesseract()

' Set the recognition language to English
Ocr.Language = OcrLanguage.English

Using Input = New OcrInput()
	' Add an example image to the OCR input
	Input.Add("img\example.tiff")

	' Optional: Clean the image before processing
	' Input.DeNoise();
	' Input.Deskew();

	' Read the text from the image
	Dim result As IronOcr.OcrResult = Ocr.Read(Input)

	' Output the recognized text
	Console.WriteLine(result.Text)

	' Explore the OcrResult using IntelliSense
End Using
$vbLabelText   $csharpLabel

IronOCR Tesseract para C

Con IronOCR, toda la instalación de Tesseract se realiza completamente mediante el Administrador de Paquetes NuGet.

Install-Package IronOcr

API de Tesseract 5 en IronOCR Tesseract

Hasta la fecha, IronTesseract es la única implementación conocida de Tesseract 5 para .NET Framework o Core.

// using IronOcr;

var Ocr = new IronTesseract(); // nothing to configure

using (var Input = new OcrInput(@"images\image.png"))
{
    var result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(result.Text);
}
// using IronOcr;

var Ocr = new IronTesseract(); // nothing to configure

using (var Input = new OcrInput(@"images\image.png"))
{
    var result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(result.Text);
}
' using IronOcr;

Dim Ocr = New IronTesseract() ' nothing to configure

Using Input = New OcrInput("images\image.png")
	Dim result = Ocr.Read(Input)

	' Output the recognized text
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

API de Tesseract 4 en IronOCR Tesseract

// using IronOcr;

var Ocr = new IronTesseract();

// Specify the version of Tesseract
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract4;

using (var Input = new OcrInput(@"images\image.png"))
{
    var result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(result.Text);
}
// using IronOcr;

var Ocr = new IronTesseract();

// Specify the version of Tesseract
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract4;

using (var Input = new OcrInput(@"images\image.png"))
{
    var result = Ocr.Read(Input);

    // Output the recognized text
    Console.WriteLine(result.Text);
}
' using IronOcr;

Dim Ocr = New IronTesseract()

' Specify the version of Tesseract
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract4

Using Input = New OcrInput("images\image.png")
	Dim result = Ocr.Read(Input)

	' Output the recognized text
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Por qué IronOCR es mejor que Tesseract:

EXACTITUD

TESSERACT:

Si Tesseract encuentra una imagen que está rotada, inclinada, tiene una baja DPI, está escaneada o tiene ruido de fondo, se hace casi imposible para Tesseract obtener datos de esa imagen. Además, Tesseract también tomará mucho tiempo en procesar ese documento antes de proporcionarte información sin sentido.

IRONOCR:

IronOCR elimina este dolor de cabeza. Los usuarios a menudo logran un 99.8-100% de precisión con una configuración mínima.

COMPATIBILIDAD DE IMÁGENES

TESSERACT:

Solo acepta el formato de imagen Leptonica PIX, que es un objeto IntPtr C++ en C#. Los objetos PIX no son memoria administrada, y una falla al manejarlos con cuidado en C# resulta en fugas de memoria.

IRONOCR:

Las imágenes tienen memoria gestionada. Soporta PDF & Tiff. Se incluye System.Drawing, Stream y Byte Array para cada formato de archivo.

Compatibilidad amplia de imagen:

  • Documentos PDF
  • Páginas PDF
  • Archivos TIFF multiframe
  • JPEG & JPEG2000
  • GIF
  • PNG
  • System.Drawing.Image
  • Datos de imagen binarios (byte [])
  • Y muchos más...

ACTUACIÓN

TESSERACT:

Google Tesseract puede realizar resultados rápidos y precisos si está correctamente ajustado y las imágenes de entrada han sido preprocesadas utilizando Photoshop o ImageMagick.

IRONOCR:

El IronOcr .NET Tesseract DLL funciona con precisión y velocidad para la mayoría de las imágenes de inmediato. Hemos implementado multihilo para aprovechar los procesadores multinúcleo que la mayoría de las máquinas ahora utilizan. Incluso las imágenes de baja resolución generalmente funcionan con un alto grado de precisión en tu programa. No se requiere Photoshop.

API

TESSERACT:

Tenemos dos opciones gratuitas:

  • Trabajar con capas de Interop, muchas de las que se encuentran en GitHub están desactualizadas, tienen tickets sin resolver, fugas de memoria y advertencias de consola. Puede que no soporte .NET Core o Standard.
  • Trabajar con la línea de comandos EXE, difícil de implementar y constantemente interrumpido por los escáneres de virus y las políticas de seguridad.

IRONOCR:

Una biblioteca .NET gestionada y probada para Tesseract llamada IronTesseract.

Completamente documentado con soporte IntelliSense.

IDIOMA

TESSERACT:

Soporta solo 100 idiomas.

IRONOCR:

Soporta 125+ idiomas.


Conclusión

Tesseract es un recurso excelente para desarrolladores C++, pero no es una biblioteca OCR completa para .NET. Las imágenes escaneadas o fotografiadas necesitan ser procesadas para que sean ortogonales, estandarizadas, de alta resolución y libres de ruido digital antes de que Tesseract pueda trabajar con precisión con ellas.

En contraste, IronOCR puede hacer esto y más, con solo una línea de código. It is true that IronOCR uses Tesseract for its internal OCR engine, a very finely-tuned Tesseract, built for C#, with a lot of performance improvements and features added as standard.

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