OCR galego en C# e .NET
Outras versións deste documento:
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 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 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 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 line
string Text = 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 line
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
Configurable Hello World
// 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);
}
// 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);
}
' PM> Install-Package IronOCR.Languages.Galician
Imports IronOcr
Private Ocr = New IronTesseract()
' Set the language to Galician.
Ocr.Language = OcrLanguage.Galician
Using 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
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;
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");
}
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");
}
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;
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);
}
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);
}
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;
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;
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;
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;
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);
}
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);
}
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;
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);
}
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);
}
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;
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");
}
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");
}
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;
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");
}
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");
}
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;
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");
}
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");
}
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;
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);
}
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);
}
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.
126 paquetes de idiomas
IronOCR admite 126 idiomas internacionais a través de paquetes de idiomas que se distribúen como DLL, que se poden descargar desde este sitio web ou tamén desde o NuGet Package Manager .
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.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.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.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.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.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.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 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
}
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
}
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.
Tamén hai dispoñible unha referencia completa de obxectos para desenvolvedores .NET .