Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Reconocimiento óptico de caracteres(OCR) es una tecnología que convierte fotografías, documentos manuscritos, texto impreso y documentos escaneados en texto legible por máquina. Se trata de un método común de digitalización de textos impresos para que puedan editarse electrónicamente, buscarse, almacenarse de forma más compacta, visualizarse en línea y utilizarse en procesos automáticos como la computación cognitiva, la traducción automática y la traducción automática.(extraído) conversión de texto a hoja de cálculo. Se utiliza ampliamente como forma de introducción de datos a partir de registros de datos impresos en papel, ya sean documentos de pasaporte, facturas, extractos bancarios, recibos informatizados, tarjetas de visita, correo, impresiones de datos estáticos o cualquier documentación adecuada. El reconocimiento de patrones, la inteligencia artificial y la visión por ordenador se engloban en la investigación sobre OCR.
En este artículo, vamos a comparar dos de las bibliotecas y aplicaciones más comunes para utilizar OCR en documentos e imágenes PDF. Estos son:
ABBYY FineReader PDF es un programa de reconocimiento óptico de caracteres(OCR) creada por ABBYY. Permite convertir documentos de imagen(imágenes, escaneos, archivos PDF)y las capturas de pantalla pueden convertirse a formatos de archivo editables como Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Rich Text Format, HTML, PDF/A, PDF con función de búsqueda, CSV y texto.(texto sin formato).
ABBYY FineReader es una aplicación de escritorio disponible para Windows, Linux y macOS. También permite crear formatos editables para archivos pdf. También podemos leer archivos PDF igual que con Adobe Acrobat. ABBYY FineReader integra documentos escaneados en flujos de trabajo digitales.
Gestione y cumplimente documentos de forma sencilla y eficaz para ahorrar tiempo y esfuerzo. Trabaje con cualquier documento de la misma forma metódica, tanto si se ha creado digitalmente como si se ha convertido a partir de papel. Puede modificar el texto, las tablas y el diseño completo de su PDF sin tener que convertirlo primero.
ABBYY FineReader PDF puede crear archivos PDF a partir de más de 25 formatos de archivo diferentes, directamente desde documentos en papel o imprimiendo en una impresora PDF desde prácticamente cualquier aplicación. PDF/A-1 a PDF/A-3 son compatibles para el archivado a largo plazo, y PDF/UA garantiza que el contenido sea accesible cuando se utiliza software de asistencia, como lectores de pantalla. También capacita a los profesionales para maximizar la eficiencia en el lugar de trabajo digital.
Cree y actualice sus propios formularios PDF interactivos con ABBYY FineReader para recopilar información y estandarizar documentos con éxito. Cree formularios combinando campos interactivos de varios tipos, estableciendo acciones, editando formularios PDF existentes o añadiendo elementos de formulario a un PDF convencional.
ABBYY FineReader puede convertir al instante documentos en papel, escaneados y PDF escaneados en PDF con capacidad de búsqueda, lo que le permite recuperar documentos de archivos digitales y acceder a la información que contienen. FineReader PDF es compatible con todos los niveles de cumplimiento y variantes del formato PDF/A, el estándar del sector para el archivado a largo plazo, desde PDF/A-1 hasta PDF/A-3.
FineReader PDF, la última tecnología OCR basada en IA de ABBYY, facilita la digitalización, recuperación, edición, protección, uso compartido y colaboración en todo tipo de documentos en el mismo flujo de trabajo. FineReader también incluye comparación de documentos, que nos ayuda a comparar documentos originales, así como PDF y archivos de imagen convertidos.
IronOCR proporciona software para ingenieros que utilizan IronOCR for .NET para leer contenido de texto de fotos y PDF en aplicaciones y sitios web .NET. Escanea fotos en busca de texto y códigos de barras, y es compatible con numerosos idiomas de todo el mundo; puede proporcionar la salida como texto sin formato o como datos estructurados. La biblioteca OCR de Iron Software puede utilizarse en aplicaciones .NET MVC, Web, de consola y de escritorio. Para las implantaciones comerciales, la concesión de licencias cuenta con la asistencia directa del equipo de desarrollo.
Abra el software Visual Studio y vaya al "menú archivo". Seleccione "nuevo proyecto" y, a continuación, "Aplicación de consola".
Introduzca el nombre del proyecto y seleccione la ruta del archivo en el cuadro de texto correspondiente. A continuación, haga clic en el botón Crear y seleccione el marco de trabajo Dot net necesario, como se muestra en la siguiente captura de pantalla.
El proyecto de Visual Studio generará ahora la estructura para la aplicación seleccionada y, si ha seleccionado la aplicación de consola, Windows y web, abrirá ahora el archivo program.cs donde podrá introducir el código y compilar/ejecutar la aplicación.
A continuación, podemos añadir la biblioteca para probar el código.
Podemos descargar ABBYY FineReader aquí.
La imagen de arriba muestra que hay dos versiones, Individual y Business, que puede descargar según sus necesidades. Seleccione la opción "descargar prueba gratuita". Le redirigirá a un formulario como el de la imagen siguiente:
Tendremos que rellenar el formulario para obtener la ubicación del archivo EXE. Haga clic en la opción de descarga para descargar el archivo.
Una vez finalizada la descarga del archivo, podemos hacer doble clic en el archivo EXE para iniciar la instalación. Una vez completado, se mostrará un mensaje emergente, y ya está listo para usar.
La biblioteca IronOCR puede descargarse e instalarse de cuatro formas.
Estos son:
El software Visual Studio ofrece la opción del gestor de paquetes NuGet para instalar el paquete directamente en la solución. La siguiente captura de pantalla muestra cómo abrir el Gestor de paquetes NuGet.
Proporciona un cuadro de búsqueda para mostrar la lista de paquetes del sitio web de NuGet. En el gestor de paquetes, tenemos que buscar la palabra clave IronOCR, como en la siguiente captura de pantalla:
De la imagen anterior, obtendremos la lista de elementos de búsqueda relacionados. Debemos seleccionar la opción necesaria para instalar el paquete en la solución.
En Visual Studio, vaya a Herramientas-> Gestor de paquetes NuGet -> Consola del gestor de paquetes
Introduzca la siguiente línea en la pestaña Consola del gestor de paquetes:
Install-Package IronOcr
A continuación, el paquete se descargará/instalará en el proyecto actual y estará listo para su uso.
La tercera forma es descargar el paquete NuGet directamente del sitio web.
Haga clic en el botón enlace aquí para descargar el último paquete directamente del sitio web. Una vez descargado, siga los pasos que se indican a continuación para añadir el paquete al proyecto.
Tanto IronOCR como Abbyy Finereader disponen de una tecnología OCR que convertirá la imagen en texto buscando.
A continuación, abra la aplicación ABBYY FineReader PDF que se abrirá con múltiples opciones, como en la imagen de abajo.
A continuación, seleccione la opción "Abrir" en las opciones del Editor OCR. Aparecerá una opción para seleccionar archivos de imagen:
Después de seleccionar un archivo, comenzará automáticamente a escanear la imagen en texto editable y, a continuación, mostrará el resultado en la ventana como en la captura de pantalla siguiente:
La imagen anterior muestra la imagen de origen convertida en texto editable. Sin embargo, el resultado no es demasiado exacto. Algunos de los números no son reconocidos por la aplicación ABBYY FineReader PDF. Esto se muestra claramente en las ventanas de comparación: a la izquierda está la imagen de origen y a la derecha el texto convertido con OCR.
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"3.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"3.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("3.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Console.ReadKey()
End Using
Más arriba se muestra la API de Tesseract 5, que nos permite convertir archivos de imagen en texto. Estamos creando un objeto para Iron Tesseract en la línea de código anterior. También estamos creando un objeto OcrInput que nos permitirá añadir uno o más archivos de imagen. Puede que necesitemos dar la ruta de la imagen disponible dentro del código cuando utilicemos el método add del objeto OcrInput. Se puede añadir cualquier número de imágenes. La función "Read" en el Objeto IronTesseract que construimos antes puede ser utilizada para obtener las imágenes parseando el archivo de imagen y extrayendo el resultado en el resultado OCR. Es capaz de extraer texto de las fotos y convertirlo en una cadena.
También podemos utilizar Tesseract para añadir imágenes de varios fotogramas. "AddMultiFrameTiff" es un método diferente para esta operación. La biblioteca Tesseract lee cada fotograma de la imagen, y cada fotograma se trata como una página distinta. El proceso leerá el primer fotograma de la imagen y pasará al siguiente, y así sucesivamente, hasta que se hayan escaneado todos los fotogramas de la imagen. Este método sólo admite el formato de imagen tiff.
La imagen anterior es la salida del resultado de IronOCR, que es precisa y muestra los datos convertidos correctamente en texto editable.
IronOCR y ABBYY FineReader PDF ayudan a convertir un archivo PDF en texto editable. ABBYY FineReader PDF proporciona una lista de opciones al usuario como guardar la página, editar imagen, reconocer página, etc. También proporciona opciones de guardado como txt, documento, formato HTML, etc. IronOCR también nos permite guardar los archivos OCR convertidos en HTML, txt, pdf, etc.
Abra el software ABBYY FineReader PDF. Se abrirá una página como la de la imagen siguiente, que ofrece múltiples opciones.
A continuación, seleccione la opción "Abrir" en las opciones del Editor OCR. Aparecerá una opción para seleccionar la imagen/PDF. Podemos seleccionar un PDF o una imagen, o bien ambos archivos.
Después de seleccionar el archivo, haga clic en el botón Aceptar. Comenzará automáticamente a escanear la imagen en texto editable y mostrará el resultado en una ventana como la de la captura de pantalla siguiente.
La imagen anterior muestra el PDF de origen convertido en texto editable. Sin embargo, el resultado no es del todo exacto. Algunos de los números no son reconocidos por la aplicación ABBYY FineReader PDF. Esto se muestra claramente en las ventanas de comparación: a la izquierda está el PDF de origen y a la derecha el texto convertido con el OCR.
También podemos utilizar OCRInput para gestionar archivos PDF. Todas las páginas de los trabajos serán leídas por la clase de Iron Tesseract. A continuación, se extraerá el texto de las páginas. También podemos abrir documentos protegidos utilizando una segunda función llamada "AddPdf", que nos permite añadir PDFs a nuestra lista de documentos(contraseña si está protegido). El siguiente código muestra cómo abrir un documento PDF protegido por contraseña:
var Ocr = new IronTesseract(); // nothing to configure
using (var Input = new OcrInput())
{
Input.AddPdf("example.pdf", "password");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract(); // nothing to configure
using (var Input = new OcrInput())
{
Input.AddPdf("example.pdf", "password");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract() ' nothing to configure
Using Input = New OcrInput()
Input.AddPdf("example.pdf", "password")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
Los siguientes métodos también son proporcionados por Iron Tesseract:
AñadirPáginasPdf
Podemos leer y extraer contenido de una sola página de un documento PDF utilizando "Addpdfpage". Sólo es necesario especificar el número de página de la que deseamos extraer texto. "AddPdfPage" nos permite extraer texto de numerosas páginas que especifiquemos. En IEnumerable
IEnumerable<int> numbers = new List<int> {2,8,10 };
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
//single pageInput.AddPdfPage("example.pdf",10);
//Multiple pageInput.AddPdfPages("example.pdf", numbers);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Result.SaveAsTextFile("ocrtext.txt");
}
IEnumerable<int> numbers = new List<int> {2,8,10 };
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
//single pageInput.AddPdfPage("example.pdf",10);
//Multiple pageInput.AddPdfPages("example.pdf", numbers);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Result.SaveAsTextFile("ocrtext.txt");
}
Dim numbers As IEnumerable(Of Integer) = New List(Of Integer) From {2, 8, 10}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
'single pageInput.AddPdfPage("example.pdf",10);
'Multiple pageInput.AddPdfPages("example.pdf", numbers);
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Result.SaveAsTextFile("ocrtext.txt")
End Using
Utilizando la función SaveAsTextFile, podemos almacenar el resultado como un archivo de texto, lo que nos permite descargar el archivo a la ruta del directorio de salida. Además, podemos guardar el archivo en el archivo HTML utilizando SaveAsHocrFile.
FineReader tiene algunas opciones adicionales como: Dibujar área de texto, Dibujar área de imagen, Dibujar área de tabla, Dibujar área de reconocimiento, etc. Estas opciones ayudan al usuario a mejorar el rendimiento del OCR. Además de realizar OCR, la aplicación también permite a los usuarios realizar operaciones como combinar PDF, dividir PDF, editar PDF, etc.
IronOCR tiene características únicas que nos permiten leer códigos de barras y códigos QR de documentos escaneados. Los siguientes códigos muestran cómo podemos leer códigos de barras de una imagen o documento dado.
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage("barcode.gif");
var Result = Ocr.Read(Input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
}
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage("barcode.gif");
var Result = Ocr.Read(Input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
}
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.ReadBarCodes = True
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("barcode.gif")
Dim Result = Ocr.Read(Input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
Lo anterior es el código que ayuda a leer códigos de barras de una imagen dada o documento PDF. Es capaz de leer más de un código de barras de una página/imagen. Para leer el código de barras, IronOCR tiene una configuración única Ocr.Configuration.ReadBarCodes que ayuda a leer el código de barras; el valor por defecto es falso.
Después de leer la entrada, los datos se guardarán en el objeto llamado OCRResult; tiene una propiedad llamada Barcodes que reúne todos los datos de códigos de barras disponibles en una lista. Utilizando el bucle for-each, podemos obtener uno a uno todos los datos de los códigos de barras. Además, escaneará el código de barras y leerá su valor: dos operaciones completadas en un solo proceso.!
Además, también admite opciones de subprocesos, lo que significa que podemos realizar varios procesos de OCR al mismo tiempo. IronOCR también es capaz de reconocer un área específica de una región especificada.
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
Input.Add("document.png", ContentArea);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
Input.Add("document.png", ContentArea);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
Input.Add("document.png", ContentArea)
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
Este es el código de ejemplo para realizar el OCR en una región específica. Sólo tenemos que especificar la región rectangular en la imagen o PDF - el motor Tesseract en IronOCR permite el reconocimiento del texto.
Cuando se emplea IronOCR en el contexto de .NET Framework, Tesseract es sencillo y fácil de usar. Admite fotos y documentos PDF de diversas formas. También proporciona una serie de ajustes para mejorar el rendimiento de la biblioteca Tesseract OCR. Se admiten varios idiomas, así como numerosos idiomas en una sola operación. Para obtener más información sobre Tesseract OCR, visite su sitio web.
ABBYY FineReader PDF es una aplicación de software que utiliza un motor de inteligencia artificial para reconocer un documento de imagen/PDF. También proporciona varios ajustes para mejorar el rendimiento del proceso de OCR. Además, ofrece la opción de seleccionar varios idiomas. ABBYY FineReader PDF tiene algunas limitaciones en el uso de las conversiones de página. Hay diferentes precios para los distintos sistemas operativos. Para obtener más información sobre el precio de ABBYY FineReader PDF, haga clic en aquí.
IronOCR es mejor que ABBYY FineReader PDF. La comparación demostró que algunas de las imágenes de baja calidad no eran reconocidas por FineReader, mientras que tampoco reconocía algunos de los caracteres de la imagen, y los reportaba como desconocidos. En cambio, IronOCR muestra resultados completos y precisos. También permite reconocer datos de códigos de barras y leer sus valores a partir de imágenes. El paquete IronOCR proporciona una licencia de por vida, y no hay costes corrientes. El paquete IronOCR es compatible con varias plataformas a un precio único. Para obtener más información sobre los precios de IronOCR, haga clic en aquí.
10 productos API de .NET para sus documentos de oficina