Introducción a los ejemplos de OCR .NET

C# + VB.NET: AutoOcr AutoOcr
using IronOcr;

string imageText = new IronTesseract().Read(@"images\image.png").Text;
Imports IronOcr

Private imageText As String = (New IronTesseract()).Read("images\image.png").Text

IronOCR es único en su capacidad para detectar y leer automáticamente texto de imágenes escaneadas imperfectas y documentos PDF. La clase IronTesseract proporciona la API más sencilla.

Pruebe Otros ejemplos de código para obtener un control detallado de sus operaciones de OCR en C#.

IronOCR proporciona la versión más avanzada de Tesseract conocida en cualquier lugar y plataforma. Con mayor velocidad, precisión y una DLL y API nativas.

Compatible con Tesseract 3, Tesseract 4 y Tesseract 5 para .NET Framework, Standard, Core, Xamarin y Mono.

C# + VB.NET: Lenguas internacionales Lenguas internacionales
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.Arabic;

using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(@"images\arabic.gif");
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
}

//  Ejemplo en el que se utiliza una fuente personalizada:

var ocrTesseractCustomerLang = new IronTesseract();
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest);

using (var ocrInput = new OcrInput())
{
    ocrInput.LoadPdf(@"images\mixed-lang.pdf");
    var ocrResult = ocrTesseractCustomerLang.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports System

Private ocrTesseract = New IronTesseract()

ocrTesseract.Language = OcrLanguage.Arabic

Using ocrInput As New OcrInput()
	ocrInput.LoadImage("images\arabic.gif")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	Console.WriteLine(ocrResult.Text)
End Using

'  Ejemplo en el que se utiliza una fuente personalizada:

Dim ocrTesseractCustomerLang = New IronTesseract()
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata")
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest)

Using ocrInput As New OcrInput()
	ocrInput.LoadPdf("images\mixed-lang.pdf")
	Dim ocrResult = ocrTesseractCustomerLang.Read(ocrInput)
	Console.WriteLine(ocrResult.Text)
End Using

IronOCR admite 125 idiomas internacionales.

Aparte del inglés, que se instala por defecto, puede añadir paquetes de idiomas a su proyecto .NET a través de NuGet o descargándolos de nuestra página web Página de idiomas.

La mayoría de las lenguas están disponibles en Rápido, Estándar (recomendado) y la mejor calidad. El mejor puede ser más preciso, pero también es más lento.

C# + VB.NET: Objetos de resultados Objetos de resultados
using IronOcr;
using IronSoftware.Drawing;

//  Podemos profundizar en los resultados del OCR como un modelo de objeto de
//  Páginas, códigos de barras, párrafos, líneas, palabras y caracteres
//  Esto nos permite explorar, exportar y dibujar contenidos OCR utilizando otras API/
var ocrTesseract = new IronTesseract();

ocrTesseract.Configuration.ReadBarCodes = true;

using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("example.tiff", pages);

OcrResult ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
    //  Página objeto
    int PageNumber = page.PageNumber;
    string PageText = page.Text;
    int PageWordCount = page.WordCount;
    //  null si no establecemos Ocr.Configuration.ReadBarCodes = true;
    OcrResult.Barcode[] Barcodes = page.Barcodes;
    AnyBitmap PageImage = page.ToBitmap(ocrInput);
    int PageWidth = page.Width;
    int PageHeight = page.Height;
    double PageRotation = page.Rotation; //  corrección angular en grados de OcrInput.Deskew()

    foreach (var paragraph in page.Paragraphs)
    {
        //  Páginas -> Párrafos
        int ParagraphNumber = paragraph.ParagraphNumber;
        string ParagraphText = paragraph.Text;
        AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput);
        int ParagraphX_location = paragraph.X;
        int ParagraphY_location = paragraph.Y;
        int ParagraphWidth = paragraph.Width;
        int ParagraphHeight = paragraph.Height;
        double ParagraphOcrAccuracy = paragraph.Confidence;
        OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection;
        foreach (var line in paragraph.Lines)
        {
            //  Páginas -> Párrafos -> Líneas
            int LineNumber = line.LineNumber;
            string LineText = line.Text;
            AnyBitmap LineImage = line.ToBitmap(ocrInput);
            int LineX_location = line.X;
            int LineY_location = line.Y;
            int LineWidth = line.Width;
            int LineHeight = line.Height;
            double LineOcrAccuracy = line.Confidence;
            double LineSkew = line.BaselineAngle;
            double LineOffset = line.BaselineOffset;
            foreach (var word in line.Words)
            {
                //  Páginas -> Párrafos -> Líneas -> Palabras
                int WordNumber = word.WordNumber;
                string WordText = word.Text;
                AnyBitmap WordImage = word.ToBitmap(ocrInput);
                int WordX_location = word.X;
                int WordY_location = word.Y;
                int WordWidth = word.Width;
                int WordHeight = word.Height;
                double WordOcrAccuracy = word.Confidence;
                foreach (var character in word.Characters)
                {
                    //  Páginas -> Párrafos -> Líneas -> Palabras -> Caracteres
                    int CharacterNumber = character.CharacterNumber;
                    string CharacterText = character.Text;
                    AnyBitmap CharacterImage = character.ToBitmap(ocrInput);
                    int CharacterX_location = character.X;
                    int CharacterY_location = character.Y;
                    int CharacterWidth = character.Width;
                    int CharacterHeight = character.Height;
                    double CharacterOcrAccuracy = character.Confidence;
                    //  Salida de opciones de símbolos alternativos y su probabilidad.
                    //  Muy útil para la corrección ortográfica
                    OcrResult.Choice[] Choices = character.Choices;
                }
            }
        }
    }
}
Imports IronOcr
Imports IronSoftware.Drawing

'  Podemos profundizar en los resultados del OCR como un modelo de objeto de
'  Páginas, códigos de barras, párrafos, líneas, palabras y caracteres
'  Esto nos permite explorar, exportar y dibujar contenidos OCR utilizando otras API/
Private ocrTesseract = New IronTesseract()

ocrTesseract.Configuration.ReadBarCodes = True

Dim ocrInput As New OcrInput()
Dim pages = New Integer() { 1, 2 }
ocrInput.LoadImageFrames("example.tiff", pages)

Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
For Each page In ocrResult.Pages
	'  Página objeto
	Dim PageNumber As Integer = page.PageNumber
	Dim PageText As String = page.Text
	Dim PageWordCount As Integer = page.WordCount
	'  null si no establecemos Ocr.Configuration.ReadBarCodes = true;
	Dim Barcodes() As OcrResult.Barcode = page.Barcodes
	Dim PageImage As AnyBitmap = page.ToBitmap(ocrInput)
	Dim PageWidth As Integer = page.Width
	Dim PageHeight As Integer = page.Height
	Dim PageRotation As Double = page.Rotation '  corrección angular en grados de OcrInput.Deskew()

	For Each paragraph In page.Paragraphs
		'  Páginas -> Párrafos
		Dim ParagraphNumber As Integer = paragraph.ParagraphNumber
		Dim ParagraphText As String = paragraph.Text
		Dim ParagraphImage As AnyBitmap = paragraph.ToBitmap(ocrInput)
		Dim ParagraphX_location As Integer = paragraph.X
		Dim ParagraphY_location As Integer = paragraph.Y
		Dim ParagraphWidth As Integer = paragraph.Width
		Dim ParagraphHeight As Integer = paragraph.Height
		Dim ParagraphOcrAccuracy As Double = paragraph.Confidence
		Dim paragrapthText_direction As OcrResult.TextFlow = paragraph.TextDirection
		For Each line In paragraph.Lines
			'  Páginas -> Párrafos -> Líneas
			Dim LineNumber As Integer = line.LineNumber
			Dim LineText As String = line.Text
			Dim LineImage As AnyBitmap = line.ToBitmap(ocrInput)
			Dim LineX_location As Integer = line.X
			Dim LineY_location As Integer = line.Y
			Dim LineWidth As Integer = line.Width
			Dim LineHeight As Integer = line.Height
			Dim LineOcrAccuracy As Double = line.Confidence
			Dim LineSkew As Double = line.BaselineAngle
			Dim LineOffset As Double = line.BaselineOffset
			For Each word In line.Words
				'  Páginas -> Párrafos -> Líneas -> Palabras
				Dim WordNumber As Integer = word.WordNumber
				Dim WordText As String = word.Text
				Dim WordImage As AnyBitmap = word.ToBitmap(ocrInput)
				Dim WordX_location As Integer = word.X
				Dim WordY_location As Integer = word.Y
				Dim WordWidth As Integer = word.Width
				Dim WordHeight As Integer = word.Height
				Dim WordOcrAccuracy As Double = word.Confidence
				For Each character In word.Characters
					'  Páginas -> Párrafos -> Líneas -> Palabras -> Caracteres
					Dim CharacterNumber As Integer = character.CharacterNumber
					Dim CharacterText As String = character.Text
					Dim CharacterImage As AnyBitmap = character.ToBitmap(ocrInput)
					Dim CharacterX_location As Integer = character.X
					Dim CharacterY_location As Integer = character.Y
					Dim CharacterWidth As Integer = character.Width
					Dim CharacterHeight As Integer = character.Height
					Dim CharacterOcrAccuracy As Double = character.Confidence
					'  Salida de opciones de símbolos alternativos y su probabilidad.
					'  Muy útil para la corrección ortográfica
					Dim Choices() As OcrResult.Choice = character.Choices
				Next character
			Next word
		Next line
	Next paragraph
Next page

IronOCR devuelve un objeto de resultado avanzado por cada página que escanea utilizando Tesseract 5. Contiene datos de localización, imágenes, texto, confianza estadística, opciones de símbolos alternativos, nombres de fuentes, decoración de tamaños de fuentes, pesos de fuentes y posición para cada uno:

  • Página
  • Párrafo
  • Línea de texto
  • Palabra
  • Carácter individual
  • y código de barras

Apoyo humano directo de nuestro equipo de desarrollo

Ya se trate de consultas sobre productos, integración o licencias, el equipo de desarrollo de productos de Iron está a su disposición para responder a todas sus preguntas. Póngase en contacto e inicie un diálogo con Iron para sacar el máximo partido de nuestra biblioteca en su proyecto.

Formule una pregunta

Motor de lectura para el reconocimiento óptico de caracteres (OCR) - Imagen a texto en OCR .NET SDK

La biblioteca IronOCR (Optical Character Recognition) permite a los desarrolladores obtener resultados rápidos y eficaces al convertir imágenes en texto. IronOCR funciona con .NET, VB .NET y C#. Están diseñadas específicamente para usted, el desarrollador, para ayudarle a conseguir un rendimiento óptimo en sus proyectos.

OCR recibe y reconoce archivos de texto, códigos de barras, contenido QR y más. Sin embargo, IronOCR también proporciona numerosos métodos que le permiten añadir la lectura de OCR y el texto de las imágenes en la web, escritorio de Windows, o proyectos de consola .NET con soporte para formatos de imagen y archivos prácticamente ilimitados, como JPG, PNG, GIF, TIFF, BMP, JPEG o PDF.

Bajo el capó: IronOCR ofrece resultados perfectos

Aunque los resultados de reconocimiento de texto plano, caracteres, líneas y párrafos a partir de una imagen pueden no parecer sencillos, descubrirá que bajo el capó de IronOCR los resultados son, de hecho, más fáciles de lo que podría haber pensado inicialmente. IronOCR escanea la imagen para alinearla, emplea su eliminación de ruido y filtros para comprobar la calidad y la resolución. Examina sus propiedades, optimiza el motor de OCR y utiliza una red de inteligencia artificial entrenada para, a continuación, reconocer el texto (de las imágenes) tan bien como cualquier humano.

El OCR no es un proceso sencillo ni siquiera para un ordenador. Sin embargo, IronOCR hace que el proceso general de creación de documentos con capacidad de búsqueda sea más rápido y sencillo, con un 100% de precisión y un mínimo de líneas de código.

Funciona con .NET, VB.NET, C#

Leer el tutorial

Funciona con varios idiomas internacionales

El software no se limita a las fronteras geográficas: las empresas funcionan más allá de las fronteras y dependen de múltiples idiomas para lograr sus resultados. Del mismo modo, una herramienta de reconocimiento óptico de caracteres (OCR) que solo reconozca documentos en un único idioma es un gran NO en todos los sentidos.

¿Qué significa para usted la compatibilidad con OCR multilingüe?

Con una biblioteca de OCR multilingüe que proporciona múltiples funcionalidades de OCR, se beneficiará de la creación de un documento PDF con capacidad de búsqueda a partir de un PDF escaneado o una imagen escaneada en varios idiomas (¡desde francés hasta chino!). Su tiempo y esfuerzo se racionalizan con un documento PDF dinámico con capacidad de búsqueda de palabras que usted, sus clientes o su organización pueden utilizar y reutilizar sin límites.

Con un fuerte enfoque en usted, su negocio y sus necesidades de OCR, ya sean incorporadas o a pedido, la librería IronOCR tiene una amplia gama de lenguajes soportados. ¡Su próximo proyecto .NET puede estar libre de preocupaciones de compatibilidad de lenguaje!

Ya sea árabe, español, francés, alemán, hebreo, italiano, japonés, chino simplificado, chino tradicional (mandarín), danés, inglés, finés, portugués, ruso o sueco, sólo tiene que nombrar los idiomas y nosotros se los proporcionamos. Puede descargar el que prefiera paquetes de idiomas o póngase en contacto con nuestro servicio de asistencia 24 horas al día, 7 días a la semana, para obtener más información.

El primer paso es utilizar nuestro instalador de paquetes NuGet para Windows Visual Studio.

Descargar paquetes de idiomas

Procesamiento de imágenes para la lectura precisa de escaneados imperfectos

¿En qué se diferencia IronOCR de sus competidores? Además de permitirle agregar fácilmente funcionalidades de OCR, extraer texto y escanear imágenes rotadas, ¡también tiene la capacidad de realizar OCR a partir de escaneos imperfectos! Por el contrario, muchos de los diversos productos listos para usar que existen actualmente en el mercado suelen ser rígidos e imprecisos, destinados a fracasar en aplicaciones individuales y corporativas del mundo real, ya que la mayoría de ellos trabajan con texto impreso a máquina, de alta resolución y perfectamente ajustado.

IronOCR amplía las capacidades de Google Tesseract con su potente DLL IronTesseract, una biblioteca de OCR nativa de C# con mayor estabilidad y precisión que la biblioteca gratuita Tesseract.

Proceda sin preocupaciones: IronOCR le tiene cubierto.

Con la mejor herramienta en sus manos, incluso si tiene una imagen escaneada menos que perfecta o una imagen almacenada en su carpeta de almacenamiento - la conversión de la biblioteca de procesamiento de imágenes de IronOCR limpia el ruido, rota, reduce la distorsión y la alineación sesgada, y mejora la resolución y el contraste. Los ajustes avanzados de Reconocimiento Óptico de Caracteres (OCR) le dan a usted - los codificadores - las herramientas y el código para generar los mejores resultados de búsqueda posibles, una y otra vez.

Busque las palabras que necesita y no se decepcione nunca con los resultados precisos del 99,8-100% y la compatibilidad ilimitada con documentos PDF, archivos TIFF multitrama, JPEG y JPEG2000, GIF, PNG, BMP, WBMP, System.Drawing.Image, System.Drawing.Bitmap, System.IO.Streams de imágenes, datos binarios de imágenes (byte[]), ¡y todo lo demás!

Una alternativa a Tesseract

Rápido y preciso: de PDF escaneados a imágenes giradas escaneadas

A diferencia de otras aplicaciones .NET en .NET framework, usted encontrará que el avanzado Reconocimiento Óptico de Caracteres, dentro de la consola del administrador de paquetes de IronOCR y la consola de texto reconocido, le da a sus usuarios la habilidad de leer múltiples fuentes de palabras (desde Times New Roman hasta cualquier cosa extravagante o supuestamente difícil de entender), pesos y estilos para una lectura precisa de texto desde una imagen completa o imágenes escaneadas. La posibilidad de seleccionar determinadas áreas de una imagen contribuye a mejorar la velocidad y la precisión. El multithreading, desde unas pocas líneas a unos pocos párrafos, acelera el motor de OCR y permite la lectura de múltiples documentos en máquinas multinúcleo.

Respaldado con prestaciones de principio a fin

Nuestras pretensiones de velocidad y precisión no se limitan al proceso de reconocimiento de caracteres. Más bien, las mejoras comienzan desde el punto de instalación, ya que el motor .NET OCR de IronOCR es una biblioteca de software .NET fácil de instalar, completa y bien documentada. Existe una única instalación del gestor de paquetes NuGet para Visual Studio, y compatibilidad multithreading con MVC, WebApp, Desktop, Console y Server Applications.

Puede conseguir una precisión de OCR del 99,8-100% sin servicios web externos, cuotas continuas ni tener que enviar documentos confidenciales por Internet. Sin la engorrosa codificación C++, IronOCR es la elección clara a tomar cuando usted está en necesidad de soporte completo PDF OCR para múltiples caracteres, palabras, líneas, párrafos, texto y documentos.

Ofrecemos las mejores opciones para los desarrolladores que buscan perfeccionar su codificación, ya que IronOCR funciona desde el primer momento sin necesidad de ajustar el rendimiento ni de modificar a fondo las imágenes de entrada. La última versión de IronOCR funciona increíblemente rápido, hasta diez veces más rápido, y comete más de un 250% menos de errores que las versiones anteriores. Actualizamos nuestras propias versiones para apoyar sus objetivos proporcionando la plataforma perfecta para OCR.

Ver la lista completa de funciones

Exporte los datos de los resultados del OCR directamente a su aplicación

Incluso cuando se utilizan dispositivos móviles, nuestra perfecta biblioteca .NET OCR permite a los desarrolladores codificar "sin preocupaciones", ya que IronOCR admite la exportación de contenido como un simple conjunto de texto sencillo y complejo, texto codificado por máquina, datos de código de barras o datos de modelo de objetos estructurados. Puede dividir el contenido en párrafos, líneas, palabras, caracteres y resultados de cadenas de imágenes para su uso directo dentro de sus aplicaciones .NET.

Exporte cómodamente a su aplicación y formatos de destino: XHTML, documento de búsqueda, HOCR y HTML.

Desde el código fuente hasta el resultado final, los datos resultantes serían inútiles si no pudiera exportarlos a su aplicación. IronOCR entiende esto y le permite exportar el resultado del OCR a XHTML para poder trabajar con un formato sostenible en una gama más amplia de aplicaciones y con integración en sitios web complejos, ¡por no mencionar tiempos de carga más rápidos!

Sin embargo, el soporte no termina ahí. La posibilidad de exportar OCR a documentos PDF con función de búsqueda le facilita a usted, a sus clientes y a sus organizaciones el almacenamiento y la recuperación de documentos PDF siempre que lo necesiten. Esto es especialmente beneficioso cuando tiene un contrato de 30 páginas que puede buscar en su base de datos con unas pocas palabras clave, y también le permite presentar a su empresa como respetuosa con la normativa, dado que está demostrado que los documentos PDF con capacidad de búsqueda son beneficiosos para las personas con discapacidad visual.

Además de lo anterior, puede exportar sus resultados al formato OCR que representa su salida OCR, información de diseño e información de estilo, e incrusta la información relacionada en HTML estándar.

Más información
Soportes:
  • .NET Framework 4.0 y superior compatible con C#, VB, F#
  • Microsoft Visual Studio. Icono IDE de desarrollo .NET
  • Soporte del instalador NuGet para Visual Studio
  • Asistente de lenguaje JetBrains ReSharper C# compatible
  • Compatible con la plataforma de alojamiento Microsoft Azure C# .NET

Licencias y precios

Gratis licencias de desarrollo comunitario. Licencias comerciales a partir de 749 $.

Proyecto C# + VB.NET Licencia de biblioteca

Proyecto

Desarrollador C# + VB.NET Licencia de biblioteca

Desarrollador

Organización C# + VB.NET Library Licencia

Organización

Agencia de licencias de bibliotecas C# + VB.NET

Agencia

SaaS C# + VB.NET Library Licencias

SaaS

Licencia de biblioteca OEM C# + VB.NET

OEM

Ver todas las opciones de licencia  

Tutoriales de OCR de nuestra comunidad .NET

.NET Tesseract OCR | IronOCR

C# Tesseract OCR

Jim Baker es ingeniero de desarrollo de Iron para el producto OCR

Comparación entre IronOCR y Tesseract en .NET

Jim ha sido una figura destacada en el desarrollo de IronOCR. Jim diseña y construye algoritmos de procesamiento de imágenes y métodos de lectura para OCR.

Ver comparación
Texto a Imagen en .NET | Tutorial

C# OCR ASP.NET

Gemma Beckford - Ingeniera de soluciones Microsoft

Texto a partir de imágenes para .NET

Descubra cómo el equipo de Gemma utiliza IronOCR para leer texto de imágenes para su software de archivo. Gemma comparte sus propios ejemplos de código.

Tutorial de imagen a texto .NET
Miles de desarrolladores utilizan IronOcr para...

Sistemas contables y financieros

  • # Recibos
  • # Informes
  • # Impresión de facturas
Añada compatibilidad con PDF a los sistemas de contabilidad y finanzas ASP.NET

Digitalización empresarial

  • # Documentación
  • # Pedidos & Etiquetado
  • # Sustitución del papel
Casos prácticos de digitalización empresarial en C#

Gestión de contenidos empresariales

  • # Producción de contenidos
  • # Gestión de documentos
  • # Distribución de contenidos
.NET CMS Soporte PDF

Aplicaciones de datos e informes

  • # Seguimiento del rendimiento
  • # Mapa de tendencias
  • # Informes
Informes PDF en C#
Únase a ellos hoy mismo
Desarrolladores de componentes .NET para empresas de Iron Software

Miles de empresas, gobiernos, PYME y desarrolladores confían en los productos de software de Iron.

El equipo de Iron cuenta con más de 10 años de experiencia en el mercado de componentes de software .NET.

Equinor
Nexudus
Foley
Marval
Vireq
GE
ANZ
Medcode