Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
El reconocimiento óptico de caracteres identifica el texto que puede leerse en una imagen. El reconocimiento óptico de caracteres se utiliza de muchas maneras. Por ejemplo, puede escanear y digitalizar documentos antiguos en papel para convertirlos en documentos electrónicos que permitan realizar búsquedas. También es útil para que las fuerzas de seguridad identifiquen pruebas delictivas examinando fotos y vídeos. Para que una máquina o un ordenador pueda determinar los caracteres de cualquier documento, debe conocer el tipo de letra utilizado y el sistema de escritura en el que se escribieron esos caracteres. A menudo, este conocimiento procede de programas informáticos de inteligencia artificial llamados algoritmos de reconocimiento de imágenes, que se entrenan y ajustan en grandes conjuntos de datos de imágenes de texto.
El OCR es una tecnología importante que tiene diversos usos. Suele emplearse para leer documentos en papel escaneados, convirtiéndolos en archivos digitales que pueden editarse y consultarse a través de ordenadores. Sin embargo, el OCR también puede aplicarse a otros tipos de información, como el texto impreso en rótulos o etiquetas, el texto manuscrito o mecanografiado de cheques, formularios y otros registros comerciales, e incluso los historiales médicos transcritos a partir de grabaciones de audio.
En este artículo, compararemos dos bibliotecas OCR .NET.
IronOCR es el último y más avanzado OCR (Reconocimiento óptico de caracteres) para .NET C# y VB. IronOCR puede escanear códigos de barras y códigos QR de todos los formatos de imagen, y lee texto y realiza escaneos PDF utilizando el último motor Tesseract 5. IronOCR puede añadir funcionalidad OCR en todas las plantillas de proyectos .NET, como aplicaciones de escritorio, consola y aplicaciones web, con sólo unas pocas líneas y sin añadir una biblioteca. IronOCR es uno de los motores de OCR más precisos para proyectos .NET.
Analicemos algunas de las características exclusivas de IronOCR:
IronOCR puede realizar fácilmente OCR en archivos PDF y exportar documentos PDF con capacidad de búsqueda mediante OCR.
IronOCR es compatible con los principales idiomas, incluidos alemán, árabe, chino, finés, francés, inglés, japonés y muchos más. IronOCR proporciona la funcionalidad de mostrar la salida en diferentes formatos como Datos de Código de Barras, Texto Plano, o la clase de resultado OCR que contiene líneas, palabras, párrafos y caracteres. IronOCR utiliza la tecnología de bibliotecas Tesseract.
IronOCR es compatible con equipos Mac, Windows y Linux. También es compatible con Azure y Docker para soluciones en la nube. La última actualización de IronOCR incluye .NET core 3.1 y .NET 6 en la lista de compatibilidad, y también ofrece compatibilidad con Xamarin para MacOS.
El SDK de Tesseract.net es un producto de Patagames, una empresa de reconocimiento óptico de caracteres. (OCR) para proyectos .NET, y proporciona un método para añadir capacidades de OCR como el reconocimiento de texto en aplicaciones .NET. El SDK de Tesseract.NET es un motor de OCR que puede leer varios formatos de imagen y convertir imágenes en texto. Admite hasta 60 idiomas. También permite leer y escanear documentos PDF y convertirlos en archivos PDF con capacidad de búsqueda. Básicamente, el SDK de Tesseract.NET es una biblioteca de clases basada en el proyecto Tesseract OCR. Dispone de un motor Tesseract para realizar OCR. El archivo Patagames.Ocr.xml contiene la documentación XML de la API.
El SDK de Tesseract.NET es compatible con .NET Framework 2.0 a 4.5 en sistemas operativos de 32 y 64 bits. Este SDK puede utilizarse con Windows XP y otras versiones de Windows como Windows 7, Vista, 8, 10 y 11. Es compatible con SO de 32 y 64 bits, lo que facilita su uso en cualquier CPU.
Lamentablemente, el SDK de .NET no está disponible para macOS o Linux.
Veamos cómo podemos utilizar IronOCR y el SDK de Tesseract.NET en nuestro proyecto.
Estamos utilizando la versión 2022 de Visual Studio para crear este proyecto. Se recomienda utilizar la última versión de Visual Studio para avanzar sin problemas. A continuación, abre Visual Studio y haz clic en "Crear nuevo proyecto". A continuación, haga clic en la "Aplicación de consola" de las plantillas y configure su proyecto.
Introduzca ahora el nombre del proyecto. Le asignaré el nombre "IronOCR vs Tesseract.NET SDK". A continuación, seleccione la ruta en la que desea crear un proyecto y pulse Intro.
A continuación, seleccione la versión .NET. Utilizamos la última versión de .NET, que es .NET 6, e IronOCR es compatible con ella. Puede utilizar el que mejor se adapte a sus necesidades para el proyecto.
Después de hacer clic en el botón Crear, la Plantilla de proyecto creará el proyecto y estará lista para instalar las bibliotecas. Vamos a instalar las bibliotecas directamente.
Ahora es el momento de instalar las librerías y comprobar las funcionalidades. En primer lugar, instalaremos la biblioteca IronOCR.
IronOCR admite la instalación mediante varios métodos. Podemos elegir cualquier enfoque. Todos los métodos son seguros.
Podemos instalar la biblioteca IronOCR utilizando la interfaz gráfica de usuario del gestor de paquetes NuGet en Visual Studio. Podemos acceder a él haciendo clic en Herramientas > Gestor de paquetes NuGet > Gestionar paquetes NuGet para la solución.
Vaya a la pestaña Examinar y busque IronOCR. Seleccionamos IronOCR de los resultados de la búsqueda y lo instalamos en nuestro proyecto.
Ahora, hemos instalado la librería IronOCR en nuestro proyecto. Ya está listo para ser utilizado en nuestro proyecto .NET.
Podemos utilizar la consola del gestor de paquetes NuGet para instalar la biblioteca IronOCR. Vaya a la línea de comandos, que normalmente se encuentra debajo del archivo de código, y escriba la siguiente línea en la línea de comandos y pulse Intro. ``` Install-Package IronOcr
Comenzará a instalar la biblioteca IronOCR. Después de la instalación, estará listo para ser utilizado en nuestro proyecto.
### Instalar el SDK de Tesseract.NET
Podemos instalar el SDK de Tesseract.NET utilizando el gestor de paquetes NuGet. Para instalar el SDK de Tesseract.NET, vaya a **Herramientas > Administrador de paquetes NuGet > Administrar paquetes NuGet para la solución**. Vaya a la pestaña Examinar y busque el SDK de Tesseract.NET. Selecciona el SDK de Tesseract.NET de los resultados de la búsqueda e instálalo. Después de la instalación, podemos utilizar el SDK de Tesseract.NET en nuestro programa.
<div class="content-img-align-center"> <div class="center-image-wrapper"> <img src="/static-assets/ocr/blog/tesseract-net-core-alternatives/tesseract-net-core-alternatives-6.webp" alt="" class="img-responsive add-shadow"> </div></div>
Tras la instalación, podrá ver estas tres carpetas en el explorador de soluciones.
<div class="content-img-align-center"> <div class="center-image-wrapper"> <img src="/static-assets/ocr/blog/tesseract-net-core-alternatives/tesseract-net-core-alternatives-7.webp" alt="" class="img-responsive add-shadow"> </div></div>
Estas carpetas contienen los datos esenciales que necesita Tesseract para realizar el OCR. Ahora estamos listos para integrar la función OCR en nuestro proyecto.
## Imagen OCR
Ha llegado el momento de probar las capacidades de IronOCR y el SDK de Tesseract.NET. Ambas bibliotecas pueden realizar OCR en imágenes. Los probaremos utilizando una imagen inclinada y ruidosa con texto.
### Imagen de prueba
Esta es la imagen que utilizaremos para las pruebas.
<div class="content-img-align-center"> <div class="center-image-wrapper"> <img src="/static-assets/ocr/blog/tesseract-net-core-alternatives/tesseract-net-core-alternatives-8.webp" alt="" class="img-responsive add-shadow"> </div></div>
### Uso del SDK de Tesseract.NET
En primer lugar, veremos la salida generada por el SDK Tesseract.NET para la imagen de prueba. Echemos un vistazo al código:
```cs
using Patagames. Ocr;
using (var api = OcrApi.Create())
{
api.Init(Patagames.Ocr.Enums.Languages.English);
string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
Console.WriteLine(plainText);
}
En primer lugar, importaremos los Patagames. Biblioteca OCR para utilizar el SDK de Tesseract.NET. Después, crearemos una OcrApi utilizando la función Create. A continuación, estableceremos el idioma por defecto en inglés mediante la función Init. A continuación, extraemos el texto plano de la imagen utilizando el método GetTextFromImage, y en el parámetro, proporcionaremos la ruta de los archivos de imagen. A continuación, escribimos el texto extraído en la consola.
A continuación, eche un vistazo a la salida generada por el SDK de Tesseract.NET:
Esta es la salida que obtenemos del SDK Tesseract.NET. Al principio, da errores en función de la resolución, lo que demuestra que sólo funciona bien con imágenes de alta resolución. Tras los errores, podemos ver el texto extraído de la imagen. Si comparamos este texto con la imagen, veremos que es totalmente diferente. El texto extraído tiene mucho texto irrelevante que no tiene sentido. En general, el SDK de Tesseract.NET no supera esta prueba.
A continuación, veremos los resultados de IronOCR. Antes de pasar a los resultados, veremos primero el código de IronOCR:
using IronOcr;
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
using (var Input = new OcrInput())
{
Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
Input.Deskew();
Input.DeNoise();
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
using (var Input = new OcrInput())
{
Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
Input.Deskew();
Input.DeNoise();
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Using Input = New OcrInput()
Input.AddImage("C:\Users\Administrator\Desktop\Input.jpg")
Input.Deskew()
Input.DeNoise()
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
En el código anterior, importamos la biblioteca IronOCR en nuestro programa y luego creamos un objeto de IronTesseract, que ayuda a iniciar el proceso. A continuación, establecemos el idioma del proceso en inglés. Ahora puede empezar el trabajo de verdad. Hacemos el objeto de OcrInput. Asigne la ruta de la imagen a la variable Input utilizando la función AddImage. Utilizamos la función Deskew para girar la imagen a su posición real y, a continuación, utilizamos la función Denoise para eliminar el ruido de la imagen. Así se obtendrá un mejor resultado. A continuación, utilizamos la función Leer para reconocer el texto y extraerlo de la imagen de prueba. A continuación, mostramos el resultado en la consola. También puede guardar el resultado como archivo PDF en el archivo del proyecto.
Esta es la salida generada por IronOCR:
Si comparamos la salida, es el mismo texto que está presente en la imagen. IronOCR extrae el texto perfectamente sin ningún error. IronOCR puede extraer texto de imágenes distorsionadas y giradas. Funciona incluso con imágenes de baja resolución.
IronOCR también permite añadir imágenes de varios fotogramas. Podemos utilizar el método "AddMultiFrameTiff" para realizar esta operación. IronOCR lee cada fotograma de la imagen, y cada fotograma se trata como una página independiente. Con este método sólo se admiten imágenes Tiff.
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddMultiFrameTiff("images/multiframe.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddMultiFrameTiff("images/multiframe.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Veamos el código para crear un PDF con función de búsqueda:
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddImage(@"images\page1.png")
Input.AddImage(@"images\page2.bmp")
Input.AddMultiFrameTiff(@"images\page3.tiff")
Input.Deskew();
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddImage(@"images\page1.png")
Input.AddImage(@"images\page2.bmp")
Input.AddMultiFrameTiff(@"images\page3.tiff")
Input.Deskew();
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
La función SaveAsSearchablePdf ayuda a guardar los archivos como buscables.
IronOCR es compatible con 127 idiomas. IronOCR también admite códigos QR y códigos de barras de más de 20 tipos de lectura. IronOCR puede convertir imágenes a escala de grises para obtener un mejor resultado. IronOCR puede mejorar la resolución de las imágenes de forma manual y automática. También admite la función de contraste automático para obtener los mejores resultados. IronOCR puede exportar el documento en varios idiomas y formatos, como PDF con opción de búsqueda, exportación HTML e imágenes de cualquier página. IronOCR admite muchos formatos de entrada, como los siguientes:
IronOCR es gratuito para el desarrollo. También ofrece una versión de prueba gratuita para el desarrollo. IronOCR dispone de varios planes de precios para la producción. Puede contratar el plan que mejor se adapte a sus necesidades. Existen planes de precios individuales, para equipos de desarrolladores y para organizaciones. Los precios comienzan a partir de $599 para un plan Lite para un desarrollador y un proyecto. Todos los planes son de pago único. Los usuarios reciben actualizaciones gratuitas durante un año. También admite SaaS y cobertura OEM. Los planes profesionales están disponibles por 999 dólares, mientras que el plan ilimitado tiene un precio de 2999 dólares. El plan ilimitado incluye un número ilimitado de desarrolladores, proyectos y ubicaciones.
Puede obtener más información sobre los planes de precios siguiendo este enlace enlace. Además, Iron Software tiene actualmente una oferta especial por la que puede adquirir un paquete de cinco programas por el precio de sólo dos. Estos cinco paquetes de software son excelentes: IronPDF, IronXL, IronOCR, IronBarcode y IronWebscraper.
El SDK de Tesseract.NET también tiene un plan de precios. El plan del SDK de Tesseract.NET comienza a partir de 220 dólares para un desarrollador y un proyecto. Una cosa importante que hay que saber aquí es que el plan de precios incluye un plan de renovación. Por lo tanto, tiene que pagar anual o mensualmente para asegurarse de que el SDK de Tesseract.NET funciona en su proyecto. Puede obtener más información sobre el plan de precios del SDK de Tesseract.NET en este enlace enlace.
IronOCR es la biblioteca perfecta para estas tareas. IronOCR también es compatible con 127 idiomas, lo que significa que está aceptado en todo el mundo. Admite múltiples formatos de imagen y PDF para el procesamiento de entradas. También realiza el preprocesamiento de las imágenes para garantizar los mejores resultados. IronOCR es una atractiva biblioteca .NET. Puede reconocer texto de un área específica de una imagen. IronOCR se centra en la precisión, y los resultados obtenidos son realmente sorprendentes en este sentido. Los desarrolladores no necesitan archivos ni bibliotecas adicionales para realizar el OCR. En general, es la biblioteca perfecta.
Tesseract.NET SDK es también una biblioteca de sonido para proyectos .NET. Ofrece servicios de OCR en 60 idiomas. Se basa en el proyecto Tesseract OCR. Puede convertir imágenes escaneadas en PDF con capacidad de búsqueda gracias a su conjunto de funciones. El SDK de Tesseract.NET acepta una amplia gama de formatos de imagen para el procesamiento de entrada. Proporciona servicios de alto nivel para apoyar sus capacidades de OCR en proyectos .NET.
Tanto IronOCR como el SDK de Tesseract.NET tienen planes de precios. Pero, IronOCR tiene un poco más de variedad en su plan de precios, y también es más barato que el SDK de Tesseract.NET. Esto se debe a que IronOCR sólo acepta pagos únicos, mientras que el SDK de Tesseract.NET tiene renovaciones mensuales o anuales. Así pues, a la larga, tendrá que pagar necesariamente más por el SDK de Tesseract.NET, aunque su precio de partida sea inferior al de IronOCR.
Analizando todo el escenario y probando las capacidades de ambas librerías, podemos concluir que IronOCR es una mejor opción que el SDK de Tesseract.NET en términos de rendimiento para documentos borrosos y rotados, inclinados y con algo de ruido. La capacidad de OCR de ambas bibliotecas es buena, pero IronOCR es una biblioteca avanzada con mejores funciones, como el preprocesamiento de imágenes, la eliminación de ruido y la rotación de imágenes a su posición original. El SDK de Tesseract.NET admite hasta 60 idiomas e IronOCR admite hasta 127 idiomas. El SDK de Tesseract.NET requiere archivos adicionales para los distintos idiomas, lo que añade más volumen al programa. Además, el SDK de Tesseract.NET se actualizó por última vez hace mucho tiempo.
IronOCR ofrece una prueba gratuita para pruebas de producción. También ofrece actualmente una excelente oferta especial en la que puede adquirir el paquete completo de cinco paquetes de Iron Software por el precio de sólo dos. Puede obtener más información sobre la oferta en este enlace enlace.
9 productos API .NET para sus documentos de oficina