Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
La tecnología del reconocimiento óptico de caracteres(OCR) permite convertir texto impreso o manuscrito en formatos digitales legibles por máquina. Cuando se escanea un documento(como una factura o un recibo)La imagen escaneada se guarda en su ordenador como un archivo de imagen. Sin embargo, el texto dentro de la imagen escaneada no se puede editar, buscar o contar utilizando un editor de texto normal.
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 la potencia del OCR a través de varias bibliotecas, y una de ellas es la potente bibliotecaIronOCR deIron Software. En este tutorial, exploraremos los fundamentos del OCR y demostraremos cómo utilizarIronOCR para realizar el Reconocimiento de Caracteres de forma eficiente en C#.
Cree un nuevo proyecto C# y nómbrelo en Visual Studio.
Instale elIronOCR NET e inclúyala en la carpeta del proyecto.
Utilice elIronOCR Tesseract para leer texto a partir de imágenes.
Utilice elIronOCR Funciones avanzadas para leer el texto de las imágenes
IronOCR una biblioteca de C# desarrollada porIron Software es que proporciona funciones 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 motor de OCR Tesseract, ampliamente utilizado, mejorando 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 la potencia de Tesseract 5, finamente adaptada 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 tener instaladoVisual 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 en elNuGet 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 hacer uso deIronOCR para leer texto a partir 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: Una instancia de IronTesseract(la clase principal IronOCR) y se asigna a la variable ocrTesseract.
Los ajustes de configuración se aplican a ocrTesseract:
Idioma: Especifica el idioma para el 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.
ListaNegraCaracteres: Especifica los caracteres a incluir en la lista negra(caracteres para no reconocer).
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 OcrInput y carga de imágenes: Un bloque using crea un objeto ocrInput desechable de 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, pasándole ocrInput.
El resultado se almacena en la variable ocrResult.
Al trabajar con IronOCR, tiene acceso a varios filtros de imagen que pueden ayudar a preprocesar las imágenes antes de realizar el 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.
**Gira:
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:
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.
**A escala de grises:
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.
**Invertido:
El filtro Invertir invierte los colores: el blanco se convierte en negro y el negro en blanco.
ReemplazarColor:
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.
**Afilar:
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.
**Ruido de fondo profundo:
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.
MejorarResolución:
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: El 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 extraer texto y datos de documentos escaneados, imágenes y PDF. 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 imágenes de texto impresas o manuscritas con 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 números de matrícula a partir de imágenes o secuencias de vídeo captadas por cámaras instaladas en aplicaciones de vigilancia del tráfico, gestión de aparcamientos, cobro de peajes y aplicación de la ley.
Soluciones de accesibilidad: El OCR desempeña un papel crucial en la creación de contenidos accesibles para personas con discapacidad visual. 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 procesos de verificación de identidad, como el escaneado y procesamiento de documentos de identidad como pasaportes, permisos de conducir y documentos de identidad. Ayuda a verificar la autenticidad de los documentos y a extraer información pertinente para verificar la identidad.
Banca y finanzas: El OCR se utiliza en banca y finanzas para tareas como la lectura de cheques, el procesamiento de facturas, la conversión de un documento PDF existente, la extracción de datos de estados financieros y la automatización de flujos de trabajo basados en documentos para mejorar la precisión y la eficacia de las operaciones financieras.
Gestión de historias clínicas: En el sector sanitario, el OCR facilita la conversión de historias clínicas manuscritas o impresas a formatos electrónicos, lo que contribuye a la historia clínica electrónica.(HCE) gestión, análisis de datos y procesos de toma de decisiones.
Traducción automatizada: La tecnología OCR se integra 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
Establecer su clave de licencia: Establezca su clave de licencia IronOCR utilizando el código. Añade la siguiente línea al inicio de tu aplicación(antes de utilizar 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 globalmente a través de 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>
<configuration>
<!-- Other settings -->
<appSettings>
<add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/>
</appSettings>
</configuration>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<configuration> <!-- Other settings -- > <appSettings> <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/> </appSettings> </configuration>
Utilización 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
Comprobación de la clave de licencia: Verifique que su clave ha sido instalada 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,IronOCRa partir de 749 dólares. Aproveche el poder del OCR conIronOCR y desbloquee un mundo de posibilidades en sus proyectos de C#.
9 productos API .NET para sus documentos de oficina