Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
La tecnología de Reconocimiento Óptico de Caracteres (OCR) permite la conversión de texto en formatos digitales legibles por máquinas. Cuando un documento se escanea (como una factura o recibo), se guarda en tu computadora como un archivo de imagen. Sin embargo, el texto dentro de la imagen escaneada no puede ser editado, buscado ni contabilizado usando un editor de texto habitual.
Sin embargo, el OCR puede procesar la imagen, extraer el texto y transformarlo en un formato de texto que puedan leer los ordenadores. Permite extraer texto de diversas fuentes, incluidos archivos PDF y otras imágenes escaneadas. Además, las capacidades de OCR van más allá de la simple extracción de texto e incluyen los principales formatos de imagen y documentos PDF, convirtiéndolos en datos OCR que permiten realizar búsquedas.
En C#, los desarrolladores pueden aprovechar el poder de OCR a través de varias bibliotecas, una de las cuales es la potente biblioteca IronOCR de Iron Software. En este tutorial, exploraremos los conceptos básicos de OCR y demostraremos cómo usar IronOCR para realizar el reconocimiento de caracteres de manera eficiente en C#.
Cree un nuevo proyecto C# y nómbrelo en Visual Studio.
Instale la biblioteca IronOCR .NET e inclúyala en la carpeta del proyecto.
Utilice el IronOCR Tesseract para leer texto de imágenes.
Utilice las funciones avanzadas de IronOCR para leer el texto en las imágenes
IronOCR, una biblioteca de C# desarrollada por Iron Software, que proporciona capacidades avanzadas de OCR. Ofrece una extracción de texto precisa a partir de imágenes, PDF y documentos escaneados. Antes de sumergirnos en el código, asegúrate de que tienes IronOCR instalado en tu proyecto.
IronOCR eleva las capacidades del ampliamente utilizado motor Tesseract OCR al mejorar tanto la precisión como la velocidad. Es una solución robusta para extraer texto de diversas fuentes, como imágenes, PDF y otros formatos de documento.
Gracias a su compatibilidad con más de 127 idiomas, IronOCR es capaz de gestionar requisitos multilingües, lo que lo convierte en la opción ideal para aplicaciones que exigen versatilidad lingüística.
El texto extraído puede enviarse cómodamente como texto sin formato o como datos estructurados para integrarlo sin problemas en otras cadenas de procesamiento. Además, IronOCR facilita la creación de PDF con capacidad de búsqueda directamente a partir de entradas de imágenes.
Diseñado para ser compatible con C#, F# y VB.NET, IronOCR funciona sin problemas en varios entornos .NET, incluidas las versiones 8, 7, 6, Core, Standard y Framework.
IronOCR aprovecha el poder de Tesseract 5, adaptado finamente para un rendimiento óptimo dentro del ecosistema .NET.
Con IronOCR, los usuarios pueden definir con precisión zonas específicas dentro de los documentos, lo que permite un procesamiento OCR específico. Esta función mejora la precisión y la eficacia al concentrar la potencia de procesamiento donde más se necesita.
La biblioteca ofrece un conjunto de funciones de preprocesamiento de imágenes, como la eliminación de distorsiones y la reducción del ruido. Estas herramientas garantizan resultados superiores incluso cuando se trabaja con imágenes de origen imperfectas, mejorando en última instancia la experiencia global del OCR.
Ahora, desarrollaremos una aplicación demo que utiliza IronOCR para leer Texto de imágenes.
Visual Studio: Asegúrate de haber instalado Visual Studio o cualquier otro entorno de desarrollo C#.
Para empezar, vamos a crear una nueva aplicación de consola utilizando Visual Studio como se muestra a continuación.
Indique a continuación el nombre y la ubicación del proyecto.
Seleccione la versión .NET necesaria para el proyecto.
Haga clic en el botón Crear para crear el nuevo proyecto.
IronOCR se puede encontrar en la consola del administrador de paquetes NuGet como se muestra a continuación. Utilice el comando proporcionado para instalar el paquete.
Mediante el gestor de paquetes NuGet de Visual Studio, busque IronOCR e instálelo en la carpeta del proyecto.
Una vez instalada, la aplicación está lista para utilizar IronOCR para leer texto de imágenes.
IronOCR destaca por ser la biblioteca .NET exclusiva que ofrece funciones de OCR de Tesseract 5. En la actualidad, ostenta la distinción de ser la biblioteca Tesseract 5 más sofisticada en todos los lenguajes de programación. IronOCR integra a la perfección Tesseract 5 en varios entornos .NET, incluidos Framework, Standard, Core, Xamarin y Mono, garantizando una compatibilidad completa en todo el ecosistema.
Considere el siguiente archivo de imagen como entrada. Veamos ahora cómo leer el texto de este archivo de imagen
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
Imports IronOcr
Public Class Program
Public Shared Sub Main(ByVal args() As String)
Dim ocrTesseract = New IronTesseract()
Dim ocrInput As New OcrInput()
ocrInput.LoadImage("sample1.png")
Dim ocrResult = ocrTesseract.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Sub
End Class
Comenzamos creando IronTesseract con la configuración necesaria
A continuación, cargamos la imagen de muestra mostrada en el objeto OcrInput
El objeto IronTesseract.Configuration ofrece a los usuarios avanzados acceso a la API subyacente de Tesseract dentro de C#/.NET, lo que permite una configuración detallada para el ajuste y la optimización. A continuación se indican algunas de las configuraciones avanzadas posibles
Puede especificar el idioma para el OCR mediante la propiedad Idioma. Por ejemplo, para establecer el idioma en inglés, utilice:
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
El PageSegmentationMode determina cómo Tesseract segmenta la imagen de entrada. Las opciones incluyen AutoOsd, SingleBlock, SingleLine y más. Por ejemplo:
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
Puedes ajustar Tesseract mediante variables específicas. Por ejemplo, para desactivar la paralelización:
ocr.Configuration.TesseractVariables ["tessedit_parallelize"] = false;
ocr.Configuration.TesseractVariables ["tessedit_parallelize"] = false;
ocr.Configuration.TesseractVariables ("tessedit_parallelize") = False
Utilice WhiteListCharacters y BlackListCharacters para controlar qué caracteres reconoce Tesseract. Por ejemplo:
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
ocr.Configuration.BlackListCharacters = "`ë
^";
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
ocr.Configuration.BlackListCharacters = "`ë
^";
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
ocr.Configuration.BlackListCharacters = "`ë ^"
Explora otras variables de configuración de Tesseract para personalizar el comportamiento según tus necesidades. Por ejemplo:
ocr.Configuration.TesseractVariables ["classify_num_cp_levels"] = 3;
ocr.Configuration.TesseractVariables ["textord_debug_tabfind"] = 0;
// ... (more variables)
ocr.Configuration.TesseractVariables ["classify_num_cp_levels"] = 3;
ocr.Configuration.TesseractVariables ["textord_debug_tabfind"] = 0;
// ... (more variables)
ocr.Configuration.TesseractVariables ("classify_num_cp_levels") = 3
ocr.Configuration.TesseractVariables ("textord_debug_tabfind") = 0
' ... (more variables)
Intentemos ahora descodificar la misma imagen utilizando la configuración avanzada
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Configuración de IronOCR: Se crea una instancia de IronTesseract (la clase principal de IronOCR) y se asigna a la variable ocrTesseract.
Los ajustes de configuración se aplican a ocrTesseract:
Idioma: Especifica el idioma para OCR (en este caso, inglés).
Configuración: Un objeto TesseractConfiguration que permite una mayor personalización:
LeerCódigosDeBarra: Desactiva la lectura de códigos de barras.
BlackListCharacters: Especifica caracteres para incluir en la lista negra (caracteres que no deben reconocerse).
ListaBlancaCaracteres: No se ha especificado ninguna lista blanca, se permiten todos los caracteres.
PageSegmentationMode: Establece el modo de segmentación de página en "AutoOsd".
Entrada OCR y Carga de Imágenes: Un bloque using crea un objeto ocrInput desechable del tipo OcrInput. El archivo de imagen "sample1.png" se añade a ocrInput.
Extracción de Texto: Se llama al método Read en ocrTesseract, pasando ocrInput.
El resultado se almacena en la variable ocrResult.
Cuando trabajas con IronOCR, tienes acceso a varios filtros de imagen que pueden ayudar a preprocesar imágenes antes de realizar OCR. Estos filtros optimizan la calidad de la imagen, mejoran la visibilidad y reducen el ruido o los artefactos. Ayudan a mejorar el rendimiento de la operación de OCR.
Girar:
El filtro Girar permite rotar las imágenes un número determinado de grados en el sentido de las agujas del reloj. Para girar en sentido contrario a las agujas del reloj, utilice números negativos.
Deskew: Enderezar
El filtro Deskew corrige la inclinación de la imagen, garantizando que el texto esté en posición vertical y ortogonal. Esto resulta especialmente útil para el OCR, ya que Tesseract funciona mejor con escaneados correctamente orientados.
Escala:
El filtro Escala escala proporcionalmente las páginas de entrada del OCR.
Binarizar:
El filtro Binarizar convierte cada píxel en blanco o negro, sin término medio. Puede mejorar el rendimiento del OCR en casos de muy bajo contraste entre el texto y el fondo.
ToGrayScale:
El filtro ToGrayScale convierte cada píxel en un tono de escala de grises. Aunque es poco probable que mejore significativamente la precisión del OCR, puede aumentar la velocidad.
Invertir:
El filtro Invertir invierte los colores: el blanco se convierte en negro y el negro en blanco.
ReplaceColor:
El filtro ReemplazarColor reemplaza un color específico dentro de una imagen por otro color, considerando un determinado umbral.
Contraste:
El filtro Contraste aumenta automáticamente el contraste. Suele mejorar la velocidad y precisión del OCR en escaneos con poco contraste.
Dilatar y Erosionar:
Estos filtros morfológicos avanzados manipulan los límites de los objetos en una imagen.
Erode elimina los píxeles de los límites del objeto.
Agudizar:
El filtro Enfocar hace más nítidos los documentos OCR borrosos y aplana los canales alfa a blanco.
DeNoise:
El filtro DeNoise elimina el ruido digital. Utilízalo donde se espere ruido.
DeepCleanBackgroundNoise:
Este filtro de eliminación de ruido de fondo pesado sólo debe utilizarse cuando se conoce el ruido de fondo extremo del documento. Puede reducir la precisión del OCR en documentos limpios y consume mucha CPU.
EnhanceResolution:
El filtro MejorarResolución mejora la resolución de las imágenes de baja calidad. No suele ser necesario debido a la gestión automática de la resolución.
He aquí un ejemplo de cómo aplicar filtros utilizando IronOCR en C#:
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Dim ocr = New IronTesseract()
Dim input = New OcrInput()
input.LoadImage("sample.png")
input.Deskew()
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Digitalización de documentos: OCR se utiliza ampliamente para convertir documentos en papel escaneados, como facturas, recibos, formularios y contratos, en formatos digitales. Este proceso de digitalización agiliza el almacenamiento, la recuperación y la gestión de documentos, reduciendo el desorden de papel y mejorando la eficiencia.
Extracción de datos: El OCR permite la extracción de texto y datos de documentos escaneados, imágenes y PDFs. Estos datos extraídos pueden utilizarse para la introducción automatizada de datos, el análisis de contenidos, la indexación y la integración en bases de datos o sistemas empresariales.
Reconocimiento de Texto en Imágenes: La tecnología OCR permite extraer texto de documentos impresos e imágenes para fines de indexación y búsqueda. Esta capacidad se utiliza en diversas aplicaciones, como la realidad aumentada, los motores de búsqueda basados en imágenes y los servicios de traducción.
Reconocimiento Automático de Matrículas (ALPR): Los sistemas ALPR utilizan OCR para leer los números de matrícula de imágenes o secuencias de video capturadas por cámaras instaladas en aplicaciones de vigilancia de tráfico, gestión de estacionamientos, cobro de peajes y cumplimiento de la ley.
Soluciones de Accesibilidad: La tecnología OCR desempeña un papel crucial en la creación de contenido accesible para personas con discapacidades visuales. Al convertir el texto de imágenes o documentos en voz alta o braille, el OCR ayuda a que la información sea accesible para las personas con discapacidad.
Verificación de Identidad: La tecnología OCR se emplea en los procesos de verificación de identidad, como escanear y procesar documentos de identidad como pasaportes, licencias de conducir e identificaciones. Ayuda a verificar la autenticidad de los documentos y a extraer información pertinente para verificar la identidad.
Banca y Finanzas: OCR se utiliza en banca y finanzas para tareas como leer cheques, procesar facturas, convertir un documento PDF existente, extraer datos de estados financieros y automatizar flujos de trabajo basados en documentos para mejorar la precisión y eficiencia en las operaciones financieras.
Traducción automatizada: La tecnología OCR está integrada en herramientas de traducción y aplicaciones de aprendizaje de idiomas para convertir texto impreso de un idioma a otro. Los usuarios pueden capturar texto con sus dispositivos y el OCR les ayuda a traducirlo al idioma deseado en tiempo real.
IronOCR. Indique los siguientes datos para recibir la clave en su dirección de correo electrónico
Una vez obtenida la clave, ya sea mediante compra o prueba gratuita, siga los siguientes pasos para utilizarla
Configuración de su clave de licencia: Establezca su clave de licencia de IronOCR utilizando el código. Agregue la siguiente línea al inicio de su aplicación (antes de usar IronOCR):
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"
Clave de aplicación global (Web.Config o App.Config): Para aplicar una clave de forma global en su aplicación, utilice el archivo de configuración (Web.Config o App.Config). Añade la siguiente clave a tu appSettings:
<configuration>
<!-- Other settings -->
<appSettings>
<add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/>
</appSettings>
</configuration>
Uso de .NET Core appsettings.json: Para aplicaciones .NET Core, cree un archivo appsettings.json en el directorio raíz de su proyecto. Sustituya la clave "IronOcr.LicenseKey" por el valor de su licencia:
{
"IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
}
{
"IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
}
If True Then
"IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
End If
Prueba de tu clave de licencia: Verifica que tu clave se haya instalado correctamente probándola:
bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
Dim result As Boolean = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01")
En conclusión, IronOCR, que comienza en $749. Adopta el poder del OCR con IronOCR y desbloquea un mundo de posibilidades en tus proyectos de C#.