Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
using IronOcr;
string imageText = new IronTesseract().Read(@"images\image.png").Text;
Imports IronOcr
Private imageText As String = (New IronTesseract()).Read("images\image.png").Text
<p>IronOCR es único en su capacidad para detectar y leer automáticamente texto de imágenes escaneadas imperfectas y documentos PDF. La clase <code>IronTesseract</code> proporciona la API más sencilla.</p> <p>Pruebe Otros ejemplos de código para obtener un control detallado de sus operaciones de OCR en C#.</p> <p>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.</p> <p>Compatible con Tesseract 3, Tesseract 4 y Tesseract 5 para .NET Framework, Standard, Core, Xamarin y Mono.</p> <div class="hsg-featured-snippet"> <h2>Cómo hacer OCR en VB.NET</h2> <ol> <li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/" target="_blank" rel="nofollow noopener noreferrer">Instalar biblioteca VB.NET para hacer OCR en imagen o PDF</a></li> <li>Instanciar <code>IronTesseract</code> utilizar API intuitivas</li> <li>Utilice <code>Leer</code> para realizar OCR en VB.NET</li> <li>Obtener el resultado del OCR accediendo a la propiedad `Text</li> <li>Ejecutar 2, 3 y 4 acciones en una sola línea de código.</li> </ol> </div>
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
<p>IronOCR admite 125 idiomas internacionales.</p> <p>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<a href="/csharp/ocr/languages/" target="_blank" rel="nofollow noopener noreferrer">Página de idiomas</a>.</p> <p>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.</p>
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
<p>IronOCR devuelve un objeto de resultado avanzado por cada página que escanea utilizando Tesseract 5. Contiene <strong>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</strong> para cada uno:</p> <ul> <li>Página</li> <li>Párrafo</li> <li>Línea de texto</li> <li>Palabra</li> <li>Carácter individual</li> <li>y código de barras</li> </ul>
Para consultas sobre productos o licencias, el equipo de Iron está a su disposición. Envíenos sus preguntas y nos aseguraremos de que la persona adecuada de Iron las responda por usted.
Ponte en contactoSe pueden enviar una o varias páginas a IronOCR. Recibirá como resultado todo el contenido de texto, código de barras y QR. Agregue funcionalidad OCR a aplicaciones de consola .NET, Web o de escritorio. Las imágenes pueden ser enviadas como PDF, JPG, PNG, GIF, BMP y TIFF.
Ver un tutorialEl software de reconocimiento óptico de caracteres visualiza el contenido en varios estilos de fuente para obtener un OCR de texto preciso. Utiliza regiones de lectura rectangulares para mejorar la velocidad y la precisión. El multihilo multinúcleo mejora la velocidad de lectura del OCR.
Documentación de referencia de la APILo que realmente hace especial a IronOCR es su capacidad para leer documentos escaneados en mal estado. Su exclusiva biblioteca de preprocesamiento reduce el ruido de fondo, la rotación, la distorsión y la alineación sesgada, además de simplificar los colores y mejorar la resolución y el contraste. Los ajustes AutoOCR y OCR avanzado de Iron proporcionan a los desarrolladores las herramientas necesarias para obtener siempre los mejores resultados posibles.
Más informaciónPaquetes de idiomas disponibles para: Alemán, árabe, chino simplificado, chino tradicional, coreano, danés, español, finés, francés, hebreo, inglés, italiano, japonés, portugués, ruso y sueco. Otros idiomas pueden ser compatibles previa petición.
Más informaciónIronOCR emite el contenido como texto sin formato y datos de código de barras. Un modelo alternativo de objetos de datos estructurados permite a los desarrolladores recibir todo el contenido en formato de Encabezamientos, Párrafos, Líneas, Palabras y Caracteres estructurados para introducirlo directamente en aplicaciones .NET.
Más informaciónGratis licencias de desarrollo comunitario. Licencias comerciales a partir de 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 la comparación de Jim con TesseractC# 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.
Ver el tutorial de Gemma de imagen a textoEl equipo de Iron cuenta con más de 10 años de experiencia en el mercado de componentes de software .NET.
9 productos API .NET para sus documentos de oficina