<meta http-equiv="content-language" content="gl" />
<h1>OCR galego en C# e .NET</h1>
<h6>Outras versións deste documento:</h6>
<ul>
<li><a rel='alternate' hreflang='en' href="/csharp/ocr/languages/galician/">Inglés (This Page in English)</a></li>
<li><a href="/csharp/ocr/languages/">Máis Languages</a></li>
</ul>
<p>IronOCR é un compoñente de software C# que permite aos codificadores .NET ler texto de imaxes e documentos PDF en 126 idiomas, incluído o galego.</p>
<p>É un garfo avanzado de Tesseract, construído exclusivamente para os desenvolvedores .NET e supera regularmente a outros motores Tesseract tanto por velocidade como por precisión.</p>
<h2>Contido de IronOcr.Languages.Galician</h2>
<p>Este paquete contén 49 idiomas OCR para .NET:</p>
<ul>
<li>Galego</li>
<li>GalegoMellor</li>
<li>GalicianFast</li>
</ul>
<h2>Descargar</h2>
<p>Paquete de Lingua Galega <span style='white-space:default'>[galego]</span> <br/>* Download as <a class='languages-dll' href='/csharp/ocr/packages/language-packs/Galician.ocrdata.zip'>Zip <i class='fas fa-download'></i></a> <br/>* Install with <a target='_blank' class='languages-nuget' href="https://www.nuget.org/packages/IronOcr.Languages.Galician/">NuGet <i class='nuget-icon'></i></a></p>
<h2>Instalación</h2>
<p>O primeiro que temos que facer é instalar o noso paquete OCR <strong>galego</strong> no seu proxecto .NET.</p>
<p><code>PM> Install-Package IronOcr.Languages.Galician</code></p>
<h2>Exemplo de código</h2>
<p>Este exemplo de código C# le texto en galego dun documento Image ou PDF.</p>
```csharp
// Importing the IronOcr package
using IronOcr;
var Ocr = new IronTesseract();
// Set the OCR language to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput(@"images\Galician.png"))
{
// Perform OCR on the input image
var Result = Ocr.Read(Input);
// Retrieve the recognized text
var AllText = Result.Text;
// Output the recognized text
Console.WriteLine(AllText);
}
```
<h2>Por que escoller IronOCR?</h2>
<p>IronOCR é unha biblioteca de software .NET fácil de instalar, completa e ben documentada.</p>
<p>Escolla IronOCR para acadar o <strong>99,8% de precisión de OCR</strong> sen usar ningún servizo web externo, taxas continuas nin enviar documentos confidenciais a través de internet.</p>
<h4>Por que os desenvolvedores de C# escollen IronOCR sobre Vanilla Tesseract:</h4>
<ul>
<li>Instalar como unha única DLL ou NuGet</li>
<li>Inclúe motores Tesseract 5, 4 e 3 fóra da caixa.</li>
<li>A precisión do <strong>99,8%</strong> supera significativamente a Tesseract normal.</li>
<li>Velocidade ardente e MultiThreading</li>
<li>Compatible con aplicacións MVC, WebApp, escritorio, consola e servidor</li>
<li>Non hai código Exes nin C++ co que traballar</li>
<li>Soporte completo de OCR en PDF</li>
<li>Para realizar OCR case calquera ficheiro de imaxe ou PDF</li>
<li>Compatibilidade completa .NET Core, Standard e FrameWork</li>
<li>Implementar en Windows, Mac, Linux, Azure, Docker, Lambda, AWS</li>
<li>Le códigos de barras e códigos QR</li>
<li>Exporta OCR como a XHTML</li>
<li>Exporta OCR a documentos PDF que se poden buscar</li>
<li>Soporte multithreading</li>
<li>126 idiomas internacionais xestionados todos mediante ficheiros NuGet ou OcrData</li>
<li>Extraer imaxes, coordenadas, estatísticas e tipos de letra. Non só texto.</li>
<li>Pódese usar para redistribuír Tesseract OCR dentro de aplicacións comerciais e propietarias.</li>
</ul>
<p><em>O OCR de ferro brilla cando se traballa con imaxes do mundo real e documentos imperfectos como fotografías ou escaneos de baixa resolución que poden ter ruído ou imperfeccións dixitais.</em></p>
<p>Outras bibliotecas <a href="/csharp/ocr/use-case/free-ocr-csharp/">OCR gratuítas</a> para a plataforma .NET, como outras API e servizos web .NET Tesseract, non funcionan tan ben nestes casos de uso do mundo real.</p>
<h2>OCR con Tesseract 5: inicia a codificación en C#</h2>
<p>A mostra de código seguinte mostra o fácil que é ler texto dunha imaxe usando C# ou VB .NET.</p>
<h3>OneLiner</h3>
```csharp
// Perform OCR in a single line
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
```
<h3>Configurable Hello World</h3>
```csharp
// PM> Install-Package IronOcr.Languages.Galician
using IronOcr;
var Ocr = new IronTesseract();
// Set the language to Galician.
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Add images to OCR input
Input.AddImage("images/sample.jpeg");
//... podemos engadir calquera número de imaxes
// Perform OCR and get result
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
```
<h3>C# PDF OCR</h3>
<p>O mesmo enfoque pode usarse de xeito similar para extraer texto de calquera documento PDF.</p>
```csharp
using IronOcr;
var Ocr = new IronTesseract();
// Use the Galician language for OCR
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Add the PDF to the input with a password if needed
Input.AddPdf("example.pdf", "password");
// Tamén podemos seleccionar números de páxinas PDF específicos para OCR
// Retrieve OCR result
var Result = Ocr.Read(Input);
// Print the extracted text and total pages count
Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
}
```
<h3>OCR para TIFF MultiPage</h3>
<p>OCR Lectura do formato de ficheiro TIFF que inclúe documentos de varias páxinas. TIFF tamén se pode converter directamente nun ficheiro PDF con texto que se pode buscar.</p>
```csharp
using IronOcr;
var Ocr = new IronTesseract();
// Set OCR to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Add TIFF file for OCR
Input.AddMultiFrameTiff("multi-frame.tiff");
// Perform OCR and get result
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
```
<h3>Códigos de barras e QR</h3>
<p>Unha característica única de IronOCR é que pode ler códigos de barras e códigos QR de documentos mentres busca texto. As instancias da clase <code>OcrResult.OcrBarcode</code> proporcionan ao programador información detallada sobre cada código de barras dixitalizado.</p>
```csharp
// using IronOcr;
var Ocr = new IronTesseract();
// Enable barcode reading
Ocr.Configuration.ReadBarCodes = true;
using (var Input = new OcrInput())
{
// Add image containing barcode
Input.AddImage("img/Barcode.png");
// Perform OCR
var Result = Ocr.Read(Input);
// Iterate over each detected barcode and print its value
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// tamén se expoñen as propiedades de tipo e localización
}
}
```
<h3>OCR sobre áreas específicas de imaxes</h3>
<p>Todos os métodos de dixitalización e lectura de IronOCR ofrecen a posibilidade de especificar con exactitude de que parte ou páxinas desexamos ler o texto. Isto é moi útil cando estamos a buscar formularios estandarizados e pode aforrar moito tempo e mellorar a eficiencia.</p>
<p>Para usar as rexións de cultivo, teremos que engadir unha referencia do sistema a <code>System.Drawing</code> para poder usar o obxecto <code>System.Drawing.Rectangle</code> .</p>
```csharp
using IronOcr;
var Ocr = new IronTesseract();
// Set the language to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Define content area for OCR
var ContentArea = new System.Drawing.Rectangle { X = 215, Y = 1250, Height = 280, Width = 1335 };
// As dimensións están en px
// Add specific area for OCR
Input.Add("document.png", ContentArea);
// Perform OCR and get text
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
```
<h3>OCR para escaneos de baixa calidade</h3>
<p>A clase <code>OcrInput</code> IronOCR pode corrixir exploracións que Tesseract normal non pode ler.</p>
```csharp
using IronOcr;
var Ocr = new IronTesseract();
// Use Galician language for OCR
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
// Clean input image from noise
Input.DeNoise();
// Correct skewed image
Input.Deskew();
// Get OCR result
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
```
<h3>Exporta os resultados de OCR como PDF buscable</h3>
<p>Imaxe en PDF con cadeas de texto copiables. Pode ser indexado por motores de busca e bases de datos.</p>
```csharp
using IronOcr;
var Ocr = new IronTesseract();
// Set OCR language to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Set the title of the search file
Input.Title = "Quarterly Report";
// Add images to the OCR input
Input.AddImage("image1.jpeg");
Input.AddImage("image2.png");
Input.AddImage("image3.gif");
// Perform OCR and save result as a searchable PDF
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
```
<h3>Conversión de PDF TIFF a busca</h3>
<p>Converte un documento TIFF (ou calquera grupo de ficheiros de imaxe) directamente nun PDF que se pode buscar e que pode ser indexado pola intranet, o sitio web e os buscadores de Google.</p>
```csharp
using IronOcr;
var Ocr = new IronTesseract();
// Use Galician as the language
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Add Multi-Frame TIFF for OCR
Input.AddMultiFrameTiff("example.tiff");
// Read the TIFF and save as a searchable PDF
var Result = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf");
}
```
<h3>Exportar resultados de OCR como HTML</h3>
<p>Conversión de imaxe OCR a XHTML.</p>
```csharp
using IronOcr;
var Ocr = new IronTesseract();
// Set language to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Set the title of the HTML file
Input.Title = "Html Title";
// Add image to OCR input
Input.AddImage("image1.jpeg");
// Perform OCR and save result as an XHTML file
var Result = Ocr.Read(Input);
Result.SaveAsHocrFile("results.html");
}
```
<h2>Filtros de mellora da imaxe OCR</h2>
<p>IronOCR ofrece filtros exclusivos para obxectos <code>OcrInput</code> para mellorar o rendemento do OCR.</p>
<h3>Exemplo de código de mellora da imaxe</h3>
<p>Fai que as imaxes de entrada de OCR sexan de maior calidade para producir resultados de OCR mellores e máis rápidos.</p>
```csharp
using IronOcr;
var Ocr = new IronTesseract();
// Use Galician for OCR
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
// Apply image filters to enhance quality
Input.DeNoise(); // Remove digital noise
Input.Deskew(); // Fix rotation and perspective
// Get OCR result
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
```
<h3>Lista de filtros de imaxe OCR</h3>
<p>Os filtros de entrada para mellorar o rendemento de OCR integrados en IronOCR inclúen:</p>
<ul>
<li><strong>OcrInput.Rotate(double degree)</strong>: xira as imaxes un número de graos no sentido horario. En sentido antihorario, use números negativos.</li>
<li><strong>OcrInput.Binarize()</strong>: este filtro de imaxe converte todos os píxeles en branco ou negro sen terreo medio. Pode mellorar os casos de rendemento de OCR cun contraste moi baixo de texto e fondo.</li>
<li><strong>OcrInput.ToGrayScale()</strong>: este filtro de imaxe converte cada píxel nunha sombra de escala de grises. É improbable que mellore a precisión do OCR pero pode mellorar a velocidade.</li>
<li><strong>OcrInput.Contrast()</strong>: aumenta o contraste automaticamente. Este filtro adoita mellorar a velocidade e a precisión do OCR nas exploracións de baixo contraste.</li>
<li><strong>OcrInput.DeNoise()</strong>: elimina o ruído dixital. Este filtro só se debe empregar onde se espera ruído.</li>
<li><strong>OcrInput.Invert()</strong>: inverte todas as cores. Por exemplo, o branco vólvese negro: o negro vólvese branco.</li>
<li><strong>OcrInput.Dilate()</strong> - Morfoloxía avanzada. <em>A dilatación</em> engade píxeles aos límites dos obxectos dunha imaxe. Fronte a Erode.</li>
<li><strong>OcrInput.Erode()</strong> - Morfoloxía avanzada. <em>A erosión</em> elimina os píxeles nos límites dos obxectos.</li>
<li><strong>OcrInput.Deskew()</strong>: xira unha imaxe para que sexa correcta cara arriba e ortogonal. Isto é moi útil para OCR porque a tolerancia de Tesseract para exploracións inclinadas pode ser tan baixa como 5 graos.</li>
<li><strong>OcrInput.DeepCleanBackgroundNoise()</strong> - Eliminación de ruído de fondo intensa. Use este filtro só no caso de que se coñeza o ruído de fondo do documento, porque este filtro tamén corre o risco de reducir a precisión do OCR dos documentos limpos e é moi caro na CPU.</li>
<li><strong>OcrInput.EnhanceResolution</strong>: mellora a resolución de imaxes de baixa calidade. Este filtro non adoita ser necesario porque <em>OcrInput.MinimumDPI</em> e <em>OcrInput.TargetDPI</em> capturarán e resolverán automáticamente as entradas de baixa resolución.</li>
</ul>
<p><strong>CleanBackgroundNoise.</strong> Esta é unha configuración que leva moito tempo; non obstante, permite á biblioteca limpar automáticamente o ruído dixital, o papel que se arruga e outras imperfeccións dentro dunha imaxe dixital que doutro xeito faríaa incapaz de ser lida por outras bibliotecas OCR.</p>
<p><strong>EnhanceContrast</strong> é unha configuración que fai que IronOCR aumente automáticamente o contraste do texto sobre o fondo dunha imaxe, aumentando a precisión do OCR e, xeralmente, aumentando o rendemento e a velocidade do OCR.</p>
<p><strong>EnhanceResolution</strong> é unha configuración que detectará automáticamente imaxes de baixa resolución (que teñen menos de 275 dpi) e aumentará automáticamente a imaxe e, a continuación, afinará todo o texto para que poida ser lido perfectamente por unha biblioteca de OCR. Aínda que esta operación leva consigo moito tempo, normalmente reduce o tempo global para unha operación de OCR nunha imaxe.</p>
<p><strong>Language</strong> IronOCR admite 22 paquetes de idiomas internacionais e a configuración do idioma pode usarse para seleccionar un ou varios idiomas que se aplicarán a unha operación de OCR.</p>
<p>OCR Iron <strong>Strategy</strong> soporta dúas estratexias. Podemos optar por unha dixitalización rápida e menos precisa dun documento ou usar unha estratexia avanzada que emprega algúns modelos de intelixencia artificial para mellorar automáticamente a precisión do texto OCR observando a relación estatística das palabras entre si nunha frase.</p>
<p><strong>ColorSpace</strong> é unha configuración coa que podemos optar por OCR en escala de grises ou en cor. Xeralmente, a escala de grises é a mellor opción. Non obstante, ás veces cando hai textos ou fondos de tonalidade semellante pero de cor moi diferente, un espazo a toda cor dará mellores resultados.</p>
<p><strong>DetectWhiteTextOnDarkBackgrounds.</strong> Xeralmente, todas as bibliotecas de OCR esperan ver texto negro sobre fondos brancos. Esta configuración permite que IronOCR poida detectar automáticamente negativos ou páxinas escuras con texto branco e lelas.</p>
<p><strong>InputImageType.</strong> Esta configuración permite ao desenvolvedor guiar a biblioteca OCR sobre se está a ver un documento completo ou un fragmento, como unha captura de pantalla.</p>
<p><strong>RotateAndStraighten</strong> é unha configuración avanzada que permite a IronOCR a capacidade única de ler documentos que non só se xiran, senón que posúen perspectiva, como fotografías de documentos de texto.</p>
<p><strong>ReadBarcodes</strong> é unha característica útil que permite a IronOCR ler automáticamente códigos de barras e códigos QR nas páxinas xa que tamén le texto, sen engadir unha carga de tempo adicional.</p>
<p><strong>Profundidade de cor.</strong> Esta configuración determina cantos bits por píxel empregará a biblioteca OCR para determinar a profundidade dunha cor. Unha profundidade de cor maior pode aumentar a calidade do OCR, pero tamén aumentará o tempo necesario para completar a operación do OCR.</p>
<h2>126 paquetes de idiomas</h2>
<p>IronOCR admite <strong>126 idiomas internacionais a</strong> través de paquetes de idiomas que se distribúen como DLL, que se poden <a href="/csharp/ocr/languages/">descargar desde este sitio web</a> ou tamén desde o <a href="https://www.nuget.org/packages?q=IronOcr.Languages">NuGet Package Manager</a> .</p>
<p>Os idiomas inclúen alemán, francés, inglés, chinés, xaponés e moitos máis. Existen paquetes de idiomas especializados para pasaportes MRZ, cheques MICR, datos financeiros, matrículas e moitos máis. Tamén podes usar calquera ficheiro ".traineddata" de Tesseract, incluídos os que creas ti mesmo.</p>
<h3>Exemplo de idioma</h3>
<p>Usando outras linguas OCR.</p>
```csharp
// Importar IronOcr package
// PM> Install-Package IronOcr.Languages.Arabic
var Ocr = new IronTesseract();
// Set the language to Arabic for OCR
Ocr.Language = OcrLanguage.Arabic;
using (var Input = new OcrInput())
{
// Add image containing Arabic text
Input.AddImage("img/arabic.gif");
// Engadir filtros de imaxe se é necesario
// Neste caso, incluso a entrada pensada é de moi baixa calidade
// IronTesseract pode ler o que o Tesseract convencional non pode.
// Perform OCR and get result
var Result = Ocr.Read(Input);
// A consola non pode imprimir árabe en Windows facilmente.
// Gardemos no disco no seu lugar.
Result.SaveAsTextFile("arabic.txt");
}
```
<h3>Exemplo de varios idiomas</h3>
<p> Tamén é posible facer OCR usando varias linguas ao mesmo tempo. Isto pode realmente axudar a obter metadatos e URL en inglés en documentos Unicode.</p>
```csharp
// Importar IronOcr package
// PM> Install-Package IronOcr.Languages.ChineseSimplified
var Ocr = new IronTesseract();
// Set primary OCR language to Chinese Simplified
Ocr.Language = OcrLanguage.ChineseSimplified;
// Add Galician as a secondary language
Ocr.AddSecondaryLanguage(OcrLanguage.Galician);
// Podemos engadir calquera número de idiomas
using (var Input = new OcrInput())
{
// Add multi-language PDF for OCR
Input.Add("multi-language.pdf");
var Result = Ocr.Read(Input);
// Save OCR results to a text file
Result.SaveAsTextFile("results.txt");
}
```
<h2>Obxectos detallados de resultados de OCR</h2>
<p>OCR de ferro devolve un obxecto de resultado de OCR para cada operación de OCR. Xeralmente, os desenvolvedores só usan a propiedade de texto deste obxecto para obter o texto dixitalizado na imaxe. Non obstante, os resultados do OCR DOM son moito máis avanzados que este.</p>
```csharp
using IronOcr;
using System.Drawing; // Engadir referencia de montaxe
var Ocr = new IronTesseract();
// Set language to Galician for OCR
Ocr.Language = OcrLanguage.Galician;
// Configure the OCR engine mode
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
// Enable barcode reading
Ocr.Configuration.ReadBarCodes = true; // Importante
using (var Input = new OcrInput(@"images\sample.tiff"))
{
// Perform OCR and get result
OcrResult Result = Ocr.Read(Input);
// Retrieve detailed OCR result information
var Pages = Result.Pages;
var Words = Pages[0].Words;
var Barcodes = Result.Barcodes;
// Explore aquí para atopar unha API masiva e detallada:
// - Páxinas, bloques, parafáficos, liñas, palabras, letras
// - Exportación de imaxes, coordenadas de fontes, datos estatísticos
}
```
<h2>Actuación</h2>
<p>IronOCR funciona fóra da caixa sen necesidade de axustar o rendemento ou modificar moito as imaxes de entrada.</p>
<p>A velocidade é ardente: IronOCR.2020+ é ata 10 veces máis rápido e comete máis dun 250% menos de erros que as versións anteriores.</p>
<h2>Aprender máis</h2>
<p>Para obter máis información sobre OCR en C#, VB, F# ou calquera outro idioma .NET, <a href="/csharp/ocr/tutorials/how-to-read-text-from-an-image-in-csharp-net/">lea os nosos titoriais da comunidade</a>, que dan exemplos do mundo real de como se pode usar IronOCR e poden amosar os matices de como sacar o mellor proveito de esta biblioteca.</p>
<p> Tamén hai dispoñible unha <a href="/csharp/ocr/object-reference/api/">referencia</a> completa de <a href="/csharp/ocr/object-reference/api/">obxectos para desenvolvedores .NET</a> .</p>
IronOCR é un compoñente de software C# que permite aos codificadores .NET ler texto de imaxes e documentos PDF en 126 idiomas, incluído o galego.
É un garfo avanzado de Tesseract, construído exclusivamente para os desenvolvedores .NET e supera regularmente a outros motores Tesseract tanto por velocidade como por precisión.
Contido de IronOcr.Languages.Galician
Este paquete contén 49 idiomas OCR para .NET:
Galego
GalegoMellor
GalicianFast
Descargar
Paquete de Lingua Galega [galego] * Download as Zip * Install with NuGet
Instalación
O primeiro que temos que facer é instalar o noso paquete OCR galego no seu proxecto .NET.
PM> Install-Package IronOcr.Languages.Galician
Exemplo de código
Este exemplo de código C# le texto en galego dun documento Image ou PDF.
// Importing the IronOcr packageusing IronOcr;varOcr = new IronTesseract();// Set the OCR language to GalicianOcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput(@"images\Galician.png")){ // Perform OCR on the input image varResult = Ocr.Read(Input); // Retrieve the recognized text varAllText = Result.Text; // Output the recognized textConsole.WriteLine(AllText);}
// Importing the IronOcr package
using IronOcr;
var Ocr = new IronTesseract();
// Set the OCR language to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput(@"images\Galician.png"))
{
// Perform OCR on the input image
var Result = Ocr.Read(Input);
// Retrieve the recognized text
var AllText = Result.Text;
// Output the recognized text
Console.WriteLine(AllText);
}
' Importing the IronOcr packageImportsIronOcrPrivateOcr = New IronTesseract()' Set the OCR language to GalicianOcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput("images\Galician.png") ' Perform OCR on the input image DimResult = Ocr.Read(Input) ' Retrieve the recognized text DimAllText = Result.Text ' Output the recognized textConsole.WriteLine(AllText)EndUsing
' Importing the IronOcr package
Imports IronOcr
Private Ocr = New IronTesseract()
' Set the OCR language to Galician
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput("images\Galician.png")
' Perform OCR on the input image
Dim Result = Ocr.Read(Input)
' Retrieve the recognized text
Dim AllText = Result.Text
' Output the recognized text
Console.WriteLine(AllText)
End Using
Por que escoller IronOCR?
IronOCR é unha biblioteca de software .NET fácil de instalar, completa e ben documentada.
Escolla IronOCR para acadar o 99,8% de precisión de OCR sen usar ningún servizo web externo, taxas continuas nin enviar documentos confidenciais a través de internet.
Por que os desenvolvedores de C# escollen IronOCR sobre Vanilla Tesseract:
Instalar como unha única DLL ou NuGet
Inclúe motores Tesseract 5, 4 e 3 fóra da caixa.
A precisión do 99,8% supera significativamente a Tesseract normal.
Velocidade ardente e MultiThreading
Compatible con aplicacións MVC, WebApp, escritorio, consola e servidor
Non hai código Exes nin C++ co que traballar
Soporte completo de OCR en PDF
Para realizar OCR case calquera ficheiro de imaxe ou PDF
Compatibilidade completa .NET Core, Standard e FrameWork
Implementar en Windows, Mac, Linux, Azure, Docker, Lambda, AWS
Le códigos de barras e códigos QR
Exporta OCR como a XHTML
Exporta OCR a documentos PDF que se poden buscar
Soporte multithreading
126 idiomas internacionais xestionados todos mediante ficheiros NuGet ou OcrData
Extraer imaxes, coordenadas, estatísticas e tipos de letra. Non só texto.
Pódese usar para redistribuír Tesseract OCR dentro de aplicacións comerciais e propietarias.
O OCR de ferro brilla cando se traballa con imaxes do mundo real e documentos imperfectos como fotografías ou escaneos de baixa resolución que poden ter ruído ou imperfeccións dixitais.
Outras bibliotecas OCR gratuítas para a plataforma .NET, como outras API e servizos web .NET Tesseract, non funcionan tan ben nestes casos de uso do mundo real.
OCR con Tesseract 5: inicia a codificación en C#
A mostra de código seguinte mostra o fácil que é ler texto dunha imaxe usando C# ou VB .NET.
OneLiner
// Perform OCR in a single linestringText = new IronTesseract().Read(@"img\Screenshot.png").Text;
// Perform OCR in a single line
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
' Perform OCR in a single lineDimTextAsString = (New IronTesseract()).Read("img\Screenshot.png").Text
' Perform OCR in a single line
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
Configurable Hello World
// PM> Install-Package IronOcr.Languages.Galicianusing IronOcr;varOcr = new IronTesseract();// Set the language to Galician.Ocr.Language = OcrLanguage.Galician;using (varInput = new OcrInput()){ // Add images to OCR inputInput.AddImage("images/sample.jpeg"); //... podemos engadir calquera número de imaxes // Perform OCR and get result varResult = Ocr.Read(Input);Console.WriteLine(Result.Text);}
// PM> Install-Package IronOcr.Languages.Galician
using IronOcr;
var Ocr = new IronTesseract();
// Set the language to Galician.
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Add images to OCR input
Input.AddImage("images/sample.jpeg");
//... podemos engadir calquera número de imaxes
// Perform OCR and get result
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
ImportsIronOcrDimOcrAs New IronTesseract()' Set the language to Galician.Ocr.Language = OcrLanguage.GalicianUsingInputAs New OcrInput() ' Add images to OCR inputInput.AddImage("images/sample.jpeg") '... podemos engadir calquera número de imaxes ' Perform OCR and get result DimResult = Ocr.Read(Input)Console.WriteLine(Result.Text)EndUsing
Imports IronOcr
Dim Ocr As New IronTesseract()
' Set the language to Galician.
Ocr.Language = OcrLanguage.Galician
Using Input As New OcrInput()
' Add images to OCR input
Input.AddImage("images/sample.jpeg")
'... podemos engadir calquera número de imaxes
' Perform OCR and get result
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
C# PDF OCR
O mesmo enfoque pode usarse de xeito similar para extraer texto de calquera documento PDF.
using IronOcr;varOcr = new IronTesseract();// Use the Galician language for OCROcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput()){ // Add the PDF to the input with a password if neededInput.AddPdf("example.pdf", "password"); // Tamén podemos seleccionar números de páxinas PDF específicos para OCR // Retrieve OCR result varResult = Ocr.Read(Input); // Print the extracted text and total pages countConsole.WriteLine(Result.Text);Console.WriteLine($"{Result.Pages.Count()} Pages");}
using IronOcr;
var Ocr = new IronTesseract();
// Use the Galician language for OCR
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Add the PDF to the input with a password if needed
Input.AddPdf("example.pdf", "password");
// Tamén podemos seleccionar números de páxinas PDF específicos para OCR
// Retrieve OCR result
var Result = Ocr.Read(Input);
// Print the extracted text and total pages count
Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
}
ImportsIronOcrPrivateOcr = New IronTesseract()' Use the Galician language for OCROcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput() ' Add the PDF to the input with a password if neededInput.AddPdf("example.pdf", "password") ' Tamén podemos seleccionar números de páxinas PDF específicos para OCR ' Retrieve OCR result DimResult = Ocr.Read(Input) ' Print the extracted text and total pages countConsole.WriteLine(Result.Text)Console.WriteLine($"{Result.Pages.Count()} Pages")EndUsing
Imports IronOcr
Private Ocr = New IronTesseract()
' Use the Galician language for OCR
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput()
' Add the PDF to the input with a password if needed
Input.AddPdf("example.pdf", "password")
' Tamén podemos seleccionar números de páxinas PDF específicos para OCR
' Retrieve OCR result
Dim Result = Ocr.Read(Input)
' Print the extracted text and total pages count
Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count()} Pages")
End Using
OCR para TIFF MultiPage
OCR Lectura do formato de ficheiro TIFF que inclúe documentos de varias páxinas. TIFF tamén se pode converter directamente nun ficheiro PDF con texto que se pode buscar.
using IronOcr;varOcr = new IronTesseract();// Set OCR to GalicianOcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput()){ // Add TIFF file for OCRInput.AddMultiFrameTiff("multi-frame.tiff"); // Perform OCR and get result varResult = Ocr.Read(Input);Console.WriteLine(Result.Text);}
using IronOcr;
var Ocr = new IronTesseract();
// Set OCR to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Add TIFF file for OCR
Input.AddMultiFrameTiff("multi-frame.tiff");
// Perform OCR and get result
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
ImportsIronOcrPrivateOcr = New IronTesseract()' Set OCR to GalicianOcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput() ' Add TIFF file for OCRInput.AddMultiFrameTiff("multi-frame.tiff") ' Perform OCR and get result DimResult = Ocr.Read(Input)Console.WriteLine(Result.Text)EndUsing
Imports IronOcr
Private Ocr = New IronTesseract()
' Set OCR to Galician
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput()
' Add TIFF file for OCR
Input.AddMultiFrameTiff("multi-frame.tiff")
' Perform OCR and get result
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
Códigos de barras e QR
Unha característica única de IronOCR é que pode ler códigos de barras e códigos QR de documentos mentres busca texto. As instancias da clase OcrResult.OcrBarcode proporcionan ao programador información detallada sobre cada código de barras dixitalizado.
// using IronOcr;varOcr = new IronTesseract();// Enable barcode readingOcr.Configuration.ReadBarCodes = true;using (varInput = new OcrInput()){ // Add image containing barcodeInput.AddImage("img/Barcode.png"); // Perform OCR varResult = Ocr.Read(Input); // Iterate over each detected barcode and print its value foreach (varBarcodeinResult.Barcodes) {Console.WriteLine(Barcode.Value); // tamén se expoñen as propiedades de tipo e localización }}
// using IronOcr;
var Ocr = new IronTesseract();
// Enable barcode reading
Ocr.Configuration.ReadBarCodes = true;
using (var Input = new OcrInput())
{
// Add image containing barcode
Input.AddImage("img/Barcode.png");
// Perform OCR
var Result = Ocr.Read(Input);
// Iterate over each detected barcode and print its value
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// tamén se expoñen as propiedades de tipo e localización
}
}
' using IronOcr;DimOcr = New IronTesseract()' Enable barcode readingOcr.Configuration.ReadBarCodes = TrueUsingInput = New OcrInput() ' Add image containing barcodeInput.AddImage("img/Barcode.png") ' Perform OCR DimResult = Ocr.Read(Input) ' Iterate over each detected barcode and print its value For EachBarcodeInResult.BarcodesConsole.WriteLine(Barcode.Value) ' tamén se expoñen as propiedades de tipo e localización NextBarcodeEndUsing
' using IronOcr;
Dim Ocr = New IronTesseract()
' Enable barcode reading
Ocr.Configuration.ReadBarCodes = True
Using Input = New OcrInput()
' Add image containing barcode
Input.AddImage("img/Barcode.png")
' Perform OCR
Dim Result = Ocr.Read(Input)
' Iterate over each detected barcode and print its value
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
' tamén se expoñen as propiedades de tipo e localización
Next Barcode
End Using
OCR sobre áreas específicas de imaxes
Todos os métodos de dixitalización e lectura de IronOCR ofrecen a posibilidade de especificar con exactitude de que parte ou páxinas desexamos ler o texto. Isto é moi útil cando estamos a buscar formularios estandarizados e pode aforrar moito tempo e mellorar a eficiencia.
Para usar as rexións de cultivo, teremos que engadir unha referencia do sistema a System.Drawing para poder usar o obxecto System.Drawing.Rectangle .
using IronOcr;varOcr = new IronTesseract();// Set the language to GalicianOcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput()){ // Define content area for OCR varContentArea = new System.Drawing.Rectangle { X = 215, Y = 1250, Height = 280, Width = 1335 }; // As dimensións están en px // Add specific area for OCRInput.Add("document.png", ContentArea); // Perform OCR and get text varResult = Ocr.Read(Input);Console.WriteLine(Result.Text);}
using IronOcr;
var Ocr = new IronTesseract();
// Set the language to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Define content area for OCR
var ContentArea = new System.Drawing.Rectangle { X = 215, Y = 1250, Height = 280, Width = 1335 };
// As dimensións están en px
// Add specific area for OCR
Input.Add("document.png", ContentArea);
// Perform OCR and get text
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
ImportsIronOcrPrivateOcr = New IronTesseract()' Set the language to GalicianOcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput() ' Define content area for OCR DimContentArea = New System.Drawing.RectangleWith { .X = 215, .Y = 1250, .Height = 280, .Width = 1335 } ' As dimensións están en px ' Add specific area for OCRInput.Add("document.png", ContentArea) ' Perform OCR and get text DimResult = Ocr.Read(Input)Console.WriteLine(Result.Text)EndUsing
Imports IronOcr
Private Ocr = New IronTesseract()
' Set the language to Galician
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput()
' Define content area for OCR
Dim ContentArea = New System.Drawing.Rectangle With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
' As dimensións están en px
' Add specific area for OCR
Input.Add("document.png", ContentArea)
' Perform OCR and get text
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
OCR para escaneos de baixa calidade
A clase OcrInput IronOCR pode corrixir exploracións que Tesseract normal non pode ler.
using IronOcr;varOcr = new IronTesseract();// Use Galician language for OCROcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput(@"img\Potter.LowQuality.tiff")){ // Clean input image from noiseInput.DeNoise(); // Correct skewed imageInput.Deskew(); // Get OCR result varResult = Ocr.Read(Input);Console.WriteLine(Result.Text);}
using IronOcr;
var Ocr = new IronTesseract();
// Use Galician language for OCR
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
// Clean input image from noise
Input.DeNoise();
// Correct skewed image
Input.Deskew();
// Get OCR result
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
ImportsIronOcrPrivateOcr = New IronTesseract()' Use Galician language for OCROcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput("img\Potter.LowQuality.tiff") ' Clean input image from noiseInput.DeNoise() ' Correct skewed imageInput.Deskew() ' Get OCR result DimResult = Ocr.Read(Input)Console.WriteLine(Result.Text)EndUsing
Imports IronOcr
Private Ocr = New IronTesseract()
' Use Galician language for OCR
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput("img\Potter.LowQuality.tiff")
' Clean input image from noise
Input.DeNoise()
' Correct skewed image
Input.Deskew()
' Get OCR result
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
Exporta os resultados de OCR como PDF buscable
Imaxe en PDF con cadeas de texto copiables. Pode ser indexado por motores de busca e bases de datos.
using IronOcr;varOcr = new IronTesseract();// Set OCR language to GalicianOcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput()){ // Set the title of the search fileInput.Title = "Quarterly Report"; // Add images to the OCR inputInput.AddImage("image1.jpeg");Input.AddImage("image2.png");Input.AddImage("image3.gif"); // Perform OCR and save result as a searchable PDF varResult = Ocr.Read(Input);Result.SaveAsSearchablePdf("searchable.pdf");}
using IronOcr;
var Ocr = new IronTesseract();
// Set OCR language to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Set the title of the search file
Input.Title = "Quarterly Report";
// Add images to the OCR input
Input.AddImage("image1.jpeg");
Input.AddImage("image2.png");
Input.AddImage("image3.gif");
// Perform OCR and save result as a searchable PDF
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
ImportsIronOcrPrivateOcr = New IronTesseract()' Set OCR language to GalicianOcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput() ' Set the title of the search fileInput.Title = "Quarterly Report" ' Add images to the OCR inputInput.AddImage("image1.jpeg")Input.AddImage("image2.png")Input.AddImage("image3.gif") ' Perform OCR and save result as a searchable PDF DimResult = Ocr.Read(Input)Result.SaveAsSearchablePdf("searchable.pdf")EndUsing
Imports IronOcr
Private Ocr = New IronTesseract()
' Set OCR language to Galician
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput()
' Set the title of the search file
Input.Title = "Quarterly Report"
' Add images to the OCR input
Input.AddImage("image1.jpeg")
Input.AddImage("image2.png")
Input.AddImage("image3.gif")
' Perform OCR and save result as a searchable PDF
Dim Result = Ocr.Read(Input)
Result.SaveAsSearchablePdf("searchable.pdf")
End Using
Conversión de PDF TIFF a busca
Converte un documento TIFF (ou calquera grupo de ficheiros de imaxe) directamente nun PDF que se pode buscar e que pode ser indexado pola intranet, o sitio web e os buscadores de Google.
using IronOcr;varOcr = new IronTesseract();// Use Galician as the languageOcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput()){ // Add Multi-Frame TIFF for OCRInput.AddMultiFrameTiff("example.tiff"); // Read the TIFF and save as a searchable PDF varResult = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf");}
using IronOcr;
var Ocr = new IronTesseract();
// Use Galician as the language
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Add Multi-Frame TIFF for OCR
Input.AddMultiFrameTiff("example.tiff");
// Read the TIFF and save as a searchable PDF
var Result = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf");
}
ImportsIronOcrPrivateOcr = New IronTesseract()' Use Galician as the languageOcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput() ' Add Multi-Frame TIFF for OCRInput.AddMultiFrameTiff("example.tiff") ' Read the TIFF and save as a searchable PDF DimResult = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf")EndUsing
Imports IronOcr
Private Ocr = New IronTesseract()
' Use Galician as the language
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput()
' Add Multi-Frame TIFF for OCR
Input.AddMultiFrameTiff("example.tiff")
' Read the TIFF and save as a searchable PDF
Dim Result = Ocr.Read(Input).SaveAsSearchablePdf("searchable.pdf")
End Using
Exportar resultados de OCR como HTML
Conversión de imaxe OCR a XHTML.
using IronOcr;varOcr = new IronTesseract();// Set language to GalicianOcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput()){ // Set the title of the HTML fileInput.Title = "Html Title"; // Add image to OCR inputInput.AddImage("image1.jpeg"); // Perform OCR and save result as an XHTML file varResult = Ocr.Read(Input);Result.SaveAsHocrFile("results.html");}
using IronOcr;
var Ocr = new IronTesseract();
// Set language to Galician
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput())
{
// Set the title of the HTML file
Input.Title = "Html Title";
// Add image to OCR input
Input.AddImage("image1.jpeg");
// Perform OCR and save result as an XHTML file
var Result = Ocr.Read(Input);
Result.SaveAsHocrFile("results.html");
}
ImportsIronOcrPrivateOcr = New IronTesseract()' Set language to GalicianOcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput() ' Set the title of the HTML fileInput.Title = "Html Title" ' Add image to OCR inputInput.AddImage("image1.jpeg") ' Perform OCR and save result as an XHTML file DimResult = Ocr.Read(Input)Result.SaveAsHocrFile("results.html")EndUsing
Imports IronOcr
Private Ocr = New IronTesseract()
' Set language to Galician
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput()
' Set the title of the HTML file
Input.Title = "Html Title"
' Add image to OCR input
Input.AddImage("image1.jpeg")
' Perform OCR and save result as an XHTML file
Dim Result = Ocr.Read(Input)
Result.SaveAsHocrFile("results.html")
End Using
Filtros de mellora da imaxe OCR
IronOCR ofrece filtros exclusivos para obxectos OcrInput para mellorar o rendemento do OCR.
Exemplo de código de mellora da imaxe
Fai que as imaxes de entrada de OCR sexan de maior calidade para producir resultados de OCR mellores e máis rápidos.
using IronOcr;varOcr = new IronTesseract();// Use Galician for OCROcr.Language = OcrLanguage.Galician;using (varInput = new OcrInput(@"LowQuality.jpeg")){ // Apply image filters to enhance qualityInput.DeNoise(); // Remove digital noiseInput.Deskew(); // Fix rotation and perspective // Get OCR result varResult = Ocr.Read(Input);Console.WriteLine(Result.Text);}
using IronOcr;
var Ocr = new IronTesseract();
// Use Galician for OCR
Ocr.Language = OcrLanguage.Galician;
using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
// Apply image filters to enhance quality
Input.DeNoise(); // Remove digital noise
Input.Deskew(); // Fix rotation and perspective
// Get OCR result
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
ImportsIronOcrPrivateOcr = New IronTesseract()' Use Galician for OCROcr.Language = OcrLanguage.GalicianUsingInput = New OcrInput("LowQuality.jpeg") ' Apply image filters to enhance qualityInput.DeNoise() ' Remove digital noiseInput.Deskew() ' Fix rotation and perspective ' Get OCR result DimResult = Ocr.Read(Input)Console.WriteLine(Result.Text)EndUsing
Imports IronOcr
Private Ocr = New IronTesseract()
' Use Galician for OCR
Ocr.Language = OcrLanguage.Galician
Using Input = New OcrInput("LowQuality.jpeg")
' Apply image filters to enhance quality
Input.DeNoise() ' Remove digital noise
Input.Deskew() ' Fix rotation and perspective
' Get OCR result
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
Lista de filtros de imaxe OCR
Os filtros de entrada para mellorar o rendemento de OCR integrados en IronOCR inclúen:
OcrInput.Rotate(double degree): xira as imaxes un número de graos no sentido horario. En sentido antihorario, use números negativos.
OcrInput.Binarize(): este filtro de imaxe converte todos os píxeles en branco ou negro sen terreo medio. Pode mellorar os casos de rendemento de OCR cun contraste moi baixo de texto e fondo.
OcrInput.ToGrayScale(): este filtro de imaxe converte cada píxel nunha sombra de escala de grises. É improbable que mellore a precisión do OCR pero pode mellorar a velocidade.
OcrInput.Contrast(): aumenta o contraste automaticamente. Este filtro adoita mellorar a velocidade e a precisión do OCR nas exploracións de baixo contraste.
OcrInput.DeNoise(): elimina o ruído dixital. Este filtro só se debe empregar onde se espera ruído.
OcrInput.Invert(): inverte todas as cores. Por exemplo, o branco vólvese negro: o negro vólvese branco.
OcrInput.Dilate() - Morfoloxía avanzada. A dilatación engade píxeles aos límites dos obxectos dunha imaxe. Fronte a Erode.
OcrInput.Erode() - Morfoloxía avanzada. A erosión elimina os píxeles nos límites dos obxectos.
OcrInput.Deskew(): xira unha imaxe para que sexa correcta cara arriba e ortogonal. Isto é moi útil para OCR porque a tolerancia de Tesseract para exploracións inclinadas pode ser tan baixa como 5 graos.
OcrInput.DeepCleanBackgroundNoise() - Eliminación de ruído de fondo intensa. Use este filtro só no caso de que se coñeza o ruído de fondo do documento, porque este filtro tamén corre o risco de reducir a precisión do OCR dos documentos limpos e é moi caro na CPU.
OcrInput.EnhanceResolution: mellora a resolución de imaxes de baixa calidade. Este filtro non adoita ser necesario porque OcrInput.MinimumDPI e OcrInput.TargetDPI capturarán e resolverán automáticamente as entradas de baixa resolución.
CleanBackgroundNoise. Esta é unha configuración que leva moito tempo; non obstante, permite á biblioteca limpar automáticamente o ruído dixital, o papel que se arruga e outras imperfeccións dentro dunha imaxe dixital que doutro xeito faríaa incapaz de ser lida por outras bibliotecas OCR.
EnhanceContrast é unha configuración que fai que IronOCR aumente automáticamente o contraste do texto sobre o fondo dunha imaxe, aumentando a precisión do OCR e, xeralmente, aumentando o rendemento e a velocidade do OCR.
EnhanceResolution é unha configuración que detectará automáticamente imaxes de baixa resolución (que teñen menos de 275 dpi) e aumentará automáticamente a imaxe e, a continuación, afinará todo o texto para que poida ser lido perfectamente por unha biblioteca de OCR. Aínda que esta operación leva consigo moito tempo, normalmente reduce o tempo global para unha operación de OCR nunha imaxe.
Language IronOCR admite 22 paquetes de idiomas internacionais e a configuración do idioma pode usarse para seleccionar un ou varios idiomas que se aplicarán a unha operación de OCR.
OCR Iron Strategy soporta dúas estratexias. Podemos optar por unha dixitalización rápida e menos precisa dun documento ou usar unha estratexia avanzada que emprega algúns modelos de intelixencia artificial para mellorar automáticamente a precisión do texto OCR observando a relación estatística das palabras entre si nunha frase.
ColorSpace é unha configuración coa que podemos optar por OCR en escala de grises ou en cor. Xeralmente, a escala de grises é a mellor opción. Non obstante, ás veces cando hai textos ou fondos de tonalidade semellante pero de cor moi diferente, un espazo a toda cor dará mellores resultados.
DetectWhiteTextOnDarkBackgrounds. Xeralmente, todas as bibliotecas de OCR esperan ver texto negro sobre fondos brancos. Esta configuración permite que IronOCR poida detectar automáticamente negativos ou páxinas escuras con texto branco e lelas.
InputImageType. Esta configuración permite ao desenvolvedor guiar a biblioteca OCR sobre se está a ver un documento completo ou un fragmento, como unha captura de pantalla.
RotateAndStraighten é unha configuración avanzada que permite a IronOCR a capacidade única de ler documentos que non só se xiran, senón que posúen perspectiva, como fotografías de documentos de texto.
ReadBarcodes é unha característica útil que permite a IronOCR ler automáticamente códigos de barras e códigos QR nas páxinas xa que tamén le texto, sen engadir unha carga de tempo adicional.
Profundidade de cor. Esta configuración determina cantos bits por píxel empregará a biblioteca OCR para determinar a profundidade dunha cor. Unha profundidade de cor maior pode aumentar a calidade do OCR, pero tamén aumentará o tempo necesario para completar a operación do OCR.
Os idiomas inclúen alemán, francés, inglés, chinés, xaponés e moitos máis. Existen paquetes de idiomas especializados para pasaportes MRZ, cheques MICR, datos financeiros, matrículas e moitos máis. Tamén podes usar calquera ficheiro ".traineddata" de Tesseract, incluídos os que creas ti mesmo.
Exemplo de idioma
Usando outras linguas OCR.
// Importar IronOcr package// PM> Install-Package IronOcr.Languages.ArabicvarOcr = new IronTesseract();// Set the language to Arabic for OCROcr.Language = OcrLanguage.Arabic;using (varInput = new OcrInput()){ // Add image containing Arabic textInput.AddImage("img/arabic.gif"); // Engadir filtros de imaxe se é necesario // Neste caso, incluso a entrada pensada é de moi baixa calidade // IronTesseract pode ler o que o Tesseract convencional non pode. // Perform OCR and get result varResult = Ocr.Read(Input); // A consola non pode imprimir árabe en Windows facilmente. // Gardemos no disco no seu lugar.Result.SaveAsTextFile("arabic.txt");}
// Importar IronOcr package
// PM> Install-Package IronOcr.Languages.Arabic
var Ocr = new IronTesseract();
// Set the language to Arabic for OCR
Ocr.Language = OcrLanguage.Arabic;
using (var Input = new OcrInput())
{
// Add image containing Arabic text
Input.AddImage("img/arabic.gif");
// Engadir filtros de imaxe se é necesario
// Neste caso, incluso a entrada pensada é de moi baixa calidade
// IronTesseract pode ler o que o Tesseract convencional non pode.
// Perform OCR and get result
var Result = Ocr.Read(Input);
// A consola non pode imprimir árabe en Windows facilmente.
// Gardemos no disco no seu lugar.
Result.SaveAsTextFile("arabic.txt");
}
' Importar IronOcr package' PM> Install-Package IronOcr.Languages.ArabicDimOcr = New IronTesseract()' Set the language to Arabic for OCROcr.Language = OcrLanguage.ArabicUsingInput = New OcrInput() ' Add image containing Arabic textInput.AddImage("img/arabic.gif") ' Engadir filtros de imaxe se é necesario ' Neste caso, incluso a entrada pensada é de moi baixa calidade ' IronTesseract pode ler o que o Tesseract convencional non pode. ' Perform OCR and get result DimResult = Ocr.Read(Input) ' A consola non pode imprimir árabe en Windows facilmente. ' Gardemos no disco no seu lugar.Result.SaveAsTextFile("arabic.txt")EndUsing
' Importar IronOcr package
' PM> Install-Package IronOcr.Languages.Arabic
Dim Ocr = New IronTesseract()
' Set the language to Arabic for OCR
Ocr.Language = OcrLanguage.Arabic
Using Input = New OcrInput()
' Add image containing Arabic text
Input.AddImage("img/arabic.gif")
' Engadir filtros de imaxe se é necesario
' Neste caso, incluso a entrada pensada é de moi baixa calidade
' IronTesseract pode ler o que o Tesseract convencional non pode.
' Perform OCR and get result
Dim Result = Ocr.Read(Input)
' A consola non pode imprimir árabe en Windows facilmente.
' Gardemos no disco no seu lugar.
Result.SaveAsTextFile("arabic.txt")
End Using
Exemplo de varios idiomas
Tamén é posible facer OCR usando varias linguas ao mesmo tempo. Isto pode realmente axudar a obter metadatos e URL en inglés en documentos Unicode.
// Importar IronOcr package// PM> Install-Package IronOcr.Languages.ChineseSimplifiedvarOcr = new IronTesseract();// Set primary OCR language to Chinese SimplifiedOcr.Language = OcrLanguage.ChineseSimplified;// Add Galician as a secondary languageOcr.AddSecondaryLanguage(OcrLanguage.Galician);// Podemos engadir calquera número de idiomasusing (varInput = new OcrInput()){ // Add multi-language PDF for OCRInput.Add("multi-language.pdf"); varResult = Ocr.Read(Input); // Save OCR results to a text fileResult.SaveAsTextFile("results.txt");}
// Importar IronOcr package
// PM> Install-Package IronOcr.Languages.ChineseSimplified
var Ocr = new IronTesseract();
// Set primary OCR language to Chinese Simplified
Ocr.Language = OcrLanguage.ChineseSimplified;
// Add Galician as a secondary language
Ocr.AddSecondaryLanguage(OcrLanguage.Galician);
// Podemos engadir calquera número de idiomas
using (var Input = new OcrInput())
{
// Add multi-language PDF for OCR
Input.Add("multi-language.pdf");
var Result = Ocr.Read(Input);
// Save OCR results to a text file
Result.SaveAsTextFile("results.txt");
}
' Importar IronOcr package' PM> Install-Package IronOcr.Languages.ChineseSimplifiedDimOcr = New IronTesseract()' Set primary OCR language to Chinese SimplifiedOcr.Language = OcrLanguage.ChineseSimplified' Add Galician as a secondary languageOcr.AddSecondaryLanguage(OcrLanguage.Galician)' Podemos engadir calquera número de idiomasUsingInput = New OcrInput() ' Add multi-language PDF for OCRInput.Add("multi-language.pdf") DimResult = Ocr.Read(Input) ' Save OCR results to a text fileResult.SaveAsTextFile("results.txt")EndUsing
' Importar IronOcr package
' PM> Install-Package IronOcr.Languages.ChineseSimplified
Dim Ocr = New IronTesseract()
' Set primary OCR language to Chinese Simplified
Ocr.Language = OcrLanguage.ChineseSimplified
' Add Galician as a secondary language
Ocr.AddSecondaryLanguage(OcrLanguage.Galician)
' Podemos engadir calquera número de idiomas
Using Input = New OcrInput()
' Add multi-language PDF for OCR
Input.Add("multi-language.pdf")
Dim Result = Ocr.Read(Input)
' Save OCR results to a text file
Result.SaveAsTextFile("results.txt")
End Using
Obxectos detallados de resultados de OCR
OCR de ferro devolve un obxecto de resultado de OCR para cada operación de OCR. Xeralmente, os desenvolvedores só usan a propiedade de texto deste obxecto para obter o texto dixitalizado na imaxe. Non obstante, os resultados do OCR DOM son moito máis avanzados que este.
using IronOcr;using System.Drawing; // Engadir referencia de montaxevarOcr = new IronTesseract();// Set language to Galician for OCROcr.Language = OcrLanguage.Galician;// Configure the OCR engine modeOcr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;// Enable barcode readingOcr.Configuration.ReadBarCodes = true; // Importanteusing (varInput = new OcrInput(@"images\sample.tiff")){ // Perform OCR and get result OcrResultResult = Ocr.Read(Input); // Retrieve detailed OCR result information varPages = Result.Pages; varWords = Pages[0].Words; varBarcodes = Result.Barcodes; // Explore aquí para atopar unha API masiva e detallada: // - Páxinas, bloques, parafáficos, liñas, palabras, letras // - Exportación de imaxes, coordenadas de fontes, datos estatísticos}
using IronOcr;
using System.Drawing; // Engadir referencia de montaxe
var Ocr = new IronTesseract();
// Set language to Galician for OCR
Ocr.Language = OcrLanguage.Galician;
// Configure the OCR engine mode
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
// Enable barcode reading
Ocr.Configuration.ReadBarCodes = true; // Importante
using (var Input = new OcrInput(@"images\sample.tiff"))
{
// Perform OCR and get result
OcrResult Result = Ocr.Read(Input);
// Retrieve detailed OCR result information
var Pages = Result.Pages;
var Words = Pages[0].Words;
var Barcodes = Result.Barcodes;
// Explore aquí para atopar unha API masiva e detallada:
// - Páxinas, bloques, parafáficos, liñas, palabras, letras
// - Exportación de imaxes, coordenadas de fontes, datos estatísticos
}
ImportsIronOcrImportsSystem.Drawing' Engadir referencia de montaxePrivateOcr = New IronTesseract()' Set language to Galician for OCROcr.Language = OcrLanguage.Galician' Configure the OCR engine modeOcr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm' Enable barcode readingOcr.Configuration.ReadBarCodes = True ' ImportanteUsingInput = New OcrInput("images\sample.tiff") ' Perform OCR and get result DimResultAsOcrResult = Ocr.Read(Input) ' Retrieve detailed OCR result information DimPages = Result.Pages DimWords = Pages(0).Words DimBarcodes = Result.Barcodes ' Explore aquí para atopar unha API masiva e detallada: ' - Páxinas, bloques, parafáficos, liñas, palabras, letras ' - Exportación de imaxes, coordenadas de fontes, datos estatísticosEndUsing
Imports IronOcr
Imports System.Drawing ' Engadir referencia de montaxe
Private Ocr = New IronTesseract()
' Set language to Galician for OCR
Ocr.Language = OcrLanguage.Galician
' Configure the OCR engine mode
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
' Enable barcode reading
Ocr.Configuration.ReadBarCodes = True ' Importante
Using Input = New OcrInput("images\sample.tiff")
' Perform OCR and get result
Dim Result As OcrResult = Ocr.Read(Input)
' Retrieve detailed OCR result information
Dim Pages = Result.Pages
Dim Words = Pages(0).Words
Dim Barcodes = Result.Barcodes
' Explore aquí para atopar unha API masiva e detallada:
' - Páxinas, bloques, parafáficos, liñas, palabras, letras
' - Exportación de imaxes, coordenadas de fontes, datos estatísticos
End Using
Actuación
IronOCR funciona fóra da caixa sen necesidade de axustar o rendemento ou modificar moito as imaxes de entrada.
A velocidade é ardente: IronOCR.2020+ é ata 10 veces máis rápido e comete máis dun 250% menos de erros que as versións anteriores.
Aprender máis
Para obter máis información sobre OCR en C#, VB, F# ou calquera outro idioma .NET, lea os nosos titoriais da comunidade, que dan exemplos do mundo real de como se pode usar IronOCR e poden amosar os matices de como sacar o mellor proveito de esta biblioteca.
커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.