Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
using IronOcr;
string imageText = new IronTesseract().Read(@"images\image.png").Text;
Imports IronOcr
Private imageText As String = (New IronTesseract()).Read("images\image.png").Text
IronOCR est unique dans sa capacité à détecter et à lire automatiquement du texte à partir d'images scannées imparfaites et de documents PDF. La classe IronTesseract
fournit l'API la plus simple.
Essayez d'autres exemples de code pour contrôler finement vos opérations d'OCR en C#.
IronOCR fournit la version la plus avancée de Tesseract connue dans le monde entier, sur n'importe quelle plateforme. Avec une vitesse et une précision accrues, ainsi qu'une DLL et une API natives.
Prend en charge Tesseract 3, Tesseract 4 et Tesseract 5 pour .NET Framework, Standard, Core, Xamarin et Mono.
Tesseract de fer
utiliser des API intuitivesLire
pour effectuer l'OCR en VB.NETusing IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.Language = OcrLanguage.Arabic;
using (var ocrInput = new OcrInput())
{
ocrInput.LoadImage(@"images\arabic.gif");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
// Example with a Custom Trained Font Being used:
var ocrTesseractCustomerLang = new IronTesseract();
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest);
using (var ocrInput = new OcrInput())
{
ocrInput.LoadPdf(@"images\mixed-lang.pdf");
var ocrResult = ocrTesseractCustomerLang.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports System
Private ocrTesseract = New IronTesseract()
ocrTesseract.Language = OcrLanguage.Arabic
Using ocrInput As New OcrInput()
ocrInput.LoadImage("images\arabic.gif")
Dim ocrResult = ocrTesseract.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Using
' Example with a Custom Trained Font Being used:
Dim ocrTesseractCustomerLang = New IronTesseract()
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata")
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest)
Using ocrInput As New OcrInput()
ocrInput.LoadPdf("images\mixed-lang.pdf")
Dim ocrResult = ocrTesseractCustomerLang.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Using
IronOCR prend en charge 125 langues internationales.
Outre l'anglais, qui est installé par défaut, des packs de langues peuvent être ajoutés à votre projet .NET via NuGet ou téléchargés à partir de notre site Web Page des langues.
La plupart des langues sont disponibles en version rapide, standard (recommandé) et la meilleure qualité. Le meilleur est peut-être plus précis, mais il est aussi plus lent.
using IronOcr;
using IronSoftware.Drawing;
// We can delve deep into OCR results as an object model of
// Pages, Barcodes, Paragraphs, Lines, Words and Characters
// This allows us to explore, export and draw OCR content using other APIs/
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("example.tiff", pages);
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
// Page object
int PageNumber = page.PageNumber;
string PageText = page.Text;
int PageWordCount = page.WordCount;
// null if we dont set Ocr.Configuration.ReadBarCodes = true;
OcrResult.Barcode[] Barcodes = page.Barcodes;
AnyBitmap PageImage = page.ToBitmap(ocrInput);
double PageWidth = page.Width;
double PageHeight = page.Height;
double PageRotation = page.Rotation; // angular correction in degrees from OcrInput.Deskew()
foreach (var paragraph in page.Paragraphs)
{
// Pages -> Paragraphs
int ParagraphNumber = paragraph.ParagraphNumber;
string ParagraphText = paragraph.Text;
AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput);
int ParagraphX_location = paragraph.X;
int ParagraphY_location = paragraph.Y;
int ParagraphWidth = paragraph.Width;
int ParagraphHeight = paragraph.Height;
double ParagraphOcrAccuracy = paragraph.Confidence;
OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Pages -> Paragraphs -> Lines
int LineNumber = line.LineNumber;
string LineText = line.Text;
AnyBitmap LineImage = line.ToBitmap(ocrInput);
int LineX_location = line.X;
int LineY_location = line.Y;
int LineWidth = line.Width;
int LineHeight = line.Height;
double LineOcrAccuracy = line.Confidence;
double LineSkew = line.BaselineAngle;
double LineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Pages -> Paragraphs -> Lines -> Words
int WordNumber = word.WordNumber;
string WordText = word.Text;
AnyBitmap WordImage = word.ToBitmap(ocrInput);
int WordX_location = word.X;
int WordY_location = word.Y;
int WordWidth = word.Width;
int WordHeight = word.Height;
double WordOcrAccuracy = word.Confidence;
foreach (var character in word.Characters)
{
// Pages -> Paragraphs -> Lines -> Words -> Characters
int CharacterNumber = character.CharacterNumber;
string CharacterText = character.Text;
AnyBitmap CharacterImage = character.ToBitmap(ocrInput);
int CharacterX_location = character.X;
int CharacterY_location = character.Y;
int CharacterWidth = character.Width;
int CharacterHeight = character.Height;
double CharacterOcrAccuracy = character.Confidence;
// Output alternative symbols choices and their probability.
// Very useful for spellchecking
OcrResult.Choice[] Choices = character.Choices;
}
}
}
}
}
Imports IronOcr
Imports IronSoftware.Drawing
' We can delve deep into OCR results as an object model of
' Pages, Barcodes, Paragraphs, Lines, Words and Characters
' This allows us to explore, export and draw OCR content using other APIs/
Private ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
Dim ocrInput As New OcrInput()
Dim pages = New Integer() { 1, 2 }
ocrInput.LoadImageFrames("example.tiff", pages)
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
For Each page In ocrResult.Pages
' Page object
Dim PageNumber As Integer = page.PageNumber
Dim PageText As String = page.Text
Dim PageWordCount As Integer = page.WordCount
' null if we dont set Ocr.Configuration.ReadBarCodes = true;
Dim Barcodes() As OcrResult.Barcode = page.Barcodes
Dim PageImage As AnyBitmap = page.ToBitmap(ocrInput)
Dim PageWidth As Double = page.Width
Dim PageHeight As Double = page.Height
Dim PageRotation As Double = page.Rotation ' angular correction in degrees from OcrInput.Deskew()
For Each paragraph In page.Paragraphs
' Pages -> Paragraphs
Dim ParagraphNumber As Integer = paragraph.ParagraphNumber
Dim ParagraphText As String = paragraph.Text
Dim ParagraphImage As AnyBitmap = paragraph.ToBitmap(ocrInput)
Dim ParagraphX_location As Integer = paragraph.X
Dim ParagraphY_location As Integer = paragraph.Y
Dim ParagraphWidth As Integer = paragraph.Width
Dim ParagraphHeight As Integer = paragraph.Height
Dim ParagraphOcrAccuracy As Double = paragraph.Confidence
Dim paragrapthText_direction As OcrResult.TextFlow = paragraph.TextDirection
For Each line In paragraph.Lines
' Pages -> Paragraphs -> Lines
Dim LineNumber As Integer = line.LineNumber
Dim LineText As String = line.Text
Dim LineImage As AnyBitmap = line.ToBitmap(ocrInput)
Dim LineX_location As Integer = line.X
Dim LineY_location As Integer = line.Y
Dim LineWidth As Integer = line.Width
Dim LineHeight As Integer = line.Height
Dim LineOcrAccuracy As Double = line.Confidence
Dim LineSkew As Double = line.BaselineAngle
Dim LineOffset As Double = line.BaselineOffset
For Each word In line.Words
' Pages -> Paragraphs -> Lines -> Words
Dim WordNumber As Integer = word.WordNumber
Dim WordText As String = word.Text
Dim WordImage As AnyBitmap = word.ToBitmap(ocrInput)
Dim WordX_location As Integer = word.X
Dim WordY_location As Integer = word.Y
Dim WordWidth As Integer = word.Width
Dim WordHeight As Integer = word.Height
Dim WordOcrAccuracy As Double = word.Confidence
For Each character In word.Characters
' Pages -> Paragraphs -> Lines -> Words -> Characters
Dim CharacterNumber As Integer = character.CharacterNumber
Dim CharacterText As String = character.Text
Dim CharacterImage As AnyBitmap = character.ToBitmap(ocrInput)
Dim CharacterX_location As Integer = character.X
Dim CharacterY_location As Integer = character.Y
Dim CharacterWidth As Integer = character.Width
Dim CharacterHeight As Integer = character.Height
Dim CharacterOcrAccuracy As Double = character.Confidence
' Output alternative symbols choices and their probability.
' Very useful for spellchecking
Dim Choices() As OcrResult.Choice = character.Choices
Next character
Next word
Next line
Next paragraph
Next page
IronOCR renvoie un objet de résultat avancé pour chaque page qu'il scanne à l'aide de Tesseract 5. Il contient les données de localisation, les images, le texte, la confiance statistique, les choix de symboles alternatifs, les noms de polices, la décoration des tailles de polices, les graisses de polices et la position pour chacun d'entre eux :
Pour toute question relative aux produits ou aux licences, l'équipe d'Iron est prête à vous aider. Envoyez-nous vos questions et nous veillerons à ce que la bonne personne chez Iron y réponde pour vous.
Prendre contactUne ou plusieurs pages peuvent être envoyées à IronOCR. Vous recevrez ainsi tout le contenu texte, code-barres et QR. Ajoutez la fonctionnalité ROC à la console .NET, au Web ou aux applications de bureau. Les images peuvent être envoyées au format PDF, JPG, PNG, GIF, BMP et TIFF.
Voir les tutorielsLe logiciel de reconnaissance optique de caractères affiche le contenu dans plusieurs styles de police pour une reconnaissance optique de caractères précise. L'utilisation de régions de lecture rectangulaires permet d'améliorer la vitesse et la précision. Le multi-core multi threading améliore la vitesse de lecture de l'OCR.
Documentation de référence de l'APILa particularité d'IronOCR réside dans sa capacité à lire des documents mal numérisés. Sa bibliothèque de prétraitement unique réduit le bruit de fond, la rotation, la distorsion et l'alignement biaisé, tout en simplifiant les couleurs et en améliorant la résolution et le contraste. Les paramètres AutoOCR et Advanced OCR d'Iron fournissent aux développeurs les outils nécessaires pour obtenir les meilleurs résultats possibles, à chaque fois.
En savoir plusDes packs de langues sont disponibles pour : Allemand, anglais, arabe, chinois simplifié, chinois traditionnel, danois, coréen, espagnol, finnois, français, hébreu, italien, japonais, portugais, russe et suédois. D'autres langues peuvent être prises en charge sur demande.
En savoir plusIronOCR produit le contenu sous forme de texte brut et de données de code-barres. Un autre modèle d'objet de données structurées permet aux développeurs de recevoir tout le contenu sous forme d'en-têtes, de paragraphes, de lignes, de mots et de caractères structurés, afin de l'introduire directement dans les applications .NET.
En savoir plusGratuit licences de développement communautaire. Licences commerciales à partir de 749 $.
C# Tesseract OCR
Jim a joué un rôle de premier plan dans le développement d'IronOCR. Il conçoit et développe des algorithmes de traitement d'images et des méthodes de lecture pour l'OCR.
Voir la comparaison Tesseract de JimC# OCR ASP.NET
Découvrez comment l'équipe de Gemma utilise IronOCR pour lire du texte à partir d'images pour leur logiciel d'archivage. Gemma partage ses propres exemples de code.
Voir le tutoriel de Gemma sur la conversion d'images en texteL'équipe d'Iron a plus de 10 ans d'expérience sur le marché des composants logiciels .NET.
9 produits de l'API .NET pour vos documents de bureau