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
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);
}
// Example with a Custom Trained Font Being used:
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
' Example with a Custom Trained Font Being used:
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 webPá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.
using IronOcr;
using IronSoftware.Drawing;
// We can delve deep into OCR results as an object model of
// Pages, Barcodes, Paragraphs, Lines, Words and Characters
// This allows us to explore, export and draw OCR content using other APIs/
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)
{
// Page object
int PageNumber = page.PageNumber;
string PageText = page.Text;
int PageWordCount = page.WordCount;
// null if we dont set Ocr.Configuration.ReadBarCodes = true;
OcrResult.Barcode[] Barcodes = page.Barcodes;
AnyBitmap PageImage = page.ToBitmap(ocrInput);
double PageWidth = page.Width;
double PageHeight = page.Height;
double PageRotation = page.Rotation; // angular correction in degrees from OcrInput.Deskew()
foreach (var paragraph in page.Paragraphs)
{
// Pages -> Paragraphs
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)
{
// Pages -> Paragraphs -> Lines
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)
{
// Pages -> Paragraphs -> Lines -> Words
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)
{
// Pages -> Paragraphs -> Lines -> Words -> Characters
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;
// Output alternative symbols choices and their probability.
// Very useful for spellchecking
OcrResult.Choice[] Choices = character.Choices;
}
}
}
}
}
Imports IronOcr
Imports IronSoftware.Drawing
' We can delve deep into OCR results as an object model of
' Pages, Barcodes, Paragraphs, Lines, Words and Characters
' This allows us to explore, export and draw OCR content using other APIs/
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
' Page object
Dim PageNumber As Integer = page.PageNumber
Dim PageText As String = page.Text
Dim PageWordCount As Integer = page.WordCount
' null if we dont set Ocr.Configuration.ReadBarCodes = true;
Dim Barcodes() As OcrResult.Barcode = page.Barcodes
Dim PageImage As AnyBitmap = page.ToBitmap(ocrInput)
Dim PageWidth As Double = page.Width
Dim PageHeight As Double = page.Height
Dim PageRotation As Double = page.Rotation ' angular correction in degrees from OcrInput.Deskew()
For Each paragraph In page.Paragraphs
' Pages -> Paragraphs
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
' Pages -> Paragraphs -> Lines
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
' Pages -> Paragraphs -> Lines -> Words
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
' Pages -> Paragraphs -> Lines -> Words -> Characters
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
' Output alternative symbols choices and their probability.
' Very useful for spellchecking
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:
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 preguntaYa sean páginas de pasaporte, facturas, extractos bancarios, correos, tarjetas de visita o recibos; el Reconocimiento Óptico de Caracteres (OCR) es un campo de investigación basado en el reconocimiento de patrones, la visión por computadora y el aprendizaje automático. Las empresas utilizan OCR de manera transversal en departamentos para extraer texto en sistemas de contabilidad y finanzas, digitalización empresarial, gestión de contenido empresarial y sistemas de informe de datos.
Además de construir otras historias de éxito, IronOCR añade valor a Google Tesseract y Microsoft 2021 Azure Cognitive Services con IronOCR, una biblioteca OCR nativa en C#.
Si está buscando convertir imágenes del mundo real con un 99 por ciento de precisión, siga leyendo para ver cómo IronOCR le permite crear una aplicación de Reconocimiento Óptico de Caracteres eficiente, precisa, escalable y casi humana.
El Reconocimiento Óptico de Caracteres (OCR) se considera un fenómeno resuelto debido a la inmensa confianza que varias APIs aseguran hacia la protección. Sin embargo, los diversos productos suelen ser rígidos e inexactos, fallando en aplicaciones del mundo real. De manera similar, Tesseract OCR trabaja con texto impreso por máquina, de alta resolución y perfecto.
¿Suena bien?
Solo que el mundo real no siempre tiene texto impreso y escrito a mano perfectamente y con alta resolución. En su lugar, IronOCR se encarga de texto girado, sesgado, con baja DPI, ruido de fondo y todas las plagas de imperfecciones digitales, incluyendo la extracción de texto manuscrito de archivos de imagen. Aseguramos un documento exacto al 99,8-100 por ciento, con soporte multiplataforma que incluye Windows, Linux, macOS, Microsoft Azure, AWS y Docker; hay una razón por la cual los desarrolladores de C# eligen IronOCR sobre (el básico) Tesseract OCR — todo se trata de agregar valor.
¡Équipese con lo mejor!
Además de lo anterior, IronOCR le permite procesar documentos de imagen puntualmente. Por si eso no fuera todo, las características de la API de IronOCR también incluyen lo siguiente:
Transición de la instalación de .dlls nativas o exes a una sola fuente de verdad — desarrollar utilizando una única biblioteca de componentes .NET nativa usando API de C# simples que soportan:
El arte de la API de IronOCR no termina ahí; puede continuar explorando nuestra ventaja técnica características más a fondo. Reducimos las complejidades empresariales, un paso a la vez, desarrollando soluciones confiables para simplificar las aplicaciones de procesamiento de documentos y maximizando los ingresos empresariales al ofrecer características líderes en la industria que se han integrado:
Nuestro proceso de reconocimiento óptico de caracteres comienza con el preprocesamiento automatizado de imágenes, para mejorar el archivo de imagen que mejora la tasa de respuesta de extracción. IronOCR agrega valor a su trabajo al permitir a los usuarios extraer el archivo de imagen base de ejemplo en la versión óptima del mismo. IronOCR cubre todos los aspectos:
Como el servicio IronOCR funciona óptimamente en archivos de imagen de 300DPI (Puntos Por Pulgada), cualquier imagen que esté significativamente fuera de los 200-300 DPI se remuestrea para ajustarse al rango objetivo.
Esto traduce el muestreo descendente de imágenes de 600 DPI a 300 DPI o el muestreo ascendente de imágenes de 100 DPI a 200 DPI con un 99 por ciento de confianza.
Como los servicios cognitivos de IronOCR están diseñados para funcionar sobre imágenes monocromáticas, cualquier imagen en color o en escala de grises se convierte a monocromáticas, utilizando un algoritmo de binarización adaptativa.
El algoritmo compara las densidades de píxeles dentro de un área que determina el umbral a usar para convertir píxeles a monocromáticos.
IronOCR busca líneas de texto y patrones de caracteres para corregir automáticamente el sesgo y rotar recursos de imagen de entrada a la orientación deseada.
Con IronOCR, los archivos de imagen se analizan automáticamente en busca de la presencia y cantidad de ruido. El ruido es básicamente las ‘motas’ que se encuentran en las imágenes escaneadas. Nuestro algoritmo adaptativo luego elimina el ruido basado en el tamaño de las partículas de ruido.
Tan pronto como el archivo de imagen de muestra se haya preprocesado, IronOCR divide el archivo de imagen de entrada en diferentes zonas de procesamiento.
Otra fase de pre-preparación implica dividir la imagen de referencia en diferentes zonas lógicas. IronOCR primero localiza texto y imágenes dentro de la imagen con la ayuda de espacios en blanco y patrones; la región de texto se separa de las imágenes.
Luego se divide en zonas - párrafos, columnas y bloques de texto. Las imágenes y los píxeles no textuales restantes se identifican para omitir durante el reconocimiento de texto e incluir en la salida inteligente. IronOCR luego marca las zonas de texto como tablas con la ayuda de líneas de cuadrícula y bloques de texto.
Realiza múltiples pasos interconectados que convierten blobs de píxeles en hilos de texto de una sola línea que los usuarios pueden buscar. Esto incluye segmentación de caracteres, clasificación adaptativa, referencias de diccionario y otros procesos relacionados que contribuyen hacia el texto óptimamente extraído.
Con el servicio de API de IronOCR, hemos probado nuestra herramienta a través de múltiples archivos de datos ejemplos en múltiples idiomas que incluyen niveles de palabras, precisión de símbolos y retención de diseño en formatos de Microsoft Office. Aunque algunos parámetros se prueban automáticamente; otros incluyen verificaciones visuales.
IronOCR le permite agregar capacidades OCR multiplataforma con múltiples formatos de entrada a una cadena de texto plano que puede buscar. Para potenciar su productividad con IronOCR, comience con nuestra documentación tutorial gratuita que lo guiará en el uso de IronOCR. Descargue nuestro instalador de paquetes NuGet hoy, y explore con una clave de prueba gratuita o conéctese con soporte personal 24/7. Escale sus necesidades con nuestro licenciamiento de por vida, sin importar el tamaño de su equipo.
Ver licenciasLicencias de desarrollo comunitario gratuitas. Licencias comerciales desde $749.
C# Tesseract OCR
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ónC# OCR ASP.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 .NETEl equipo de Iron cuenta con más de 10 años de experiencia en el mercado de componentes de software .NET.