Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.Language = OcrLanguage.Arabic;
using (var ocrInput = new OcrInput())
{
ocrInput.LoadImage(@"images\arabic.gif");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
// Example with a Custom Trained Font Being used:
var ocrTesseractCustomerLang = new IronTesseract();
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest);
using (var ocrInput = new OcrInput())
{
ocrInput.LoadPdf(@"images\mixed-lang.pdf");
var ocrResult = ocrTesseractCustomerLang.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports System
Private ocrTesseract = New IronTesseract()
ocrTesseract.Language = OcrLanguage.Arabic
Using ocrInput As New OcrInput()
ocrInput.LoadImage("images\arabic.gif")
Dim ocrResult = ocrTesseract.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Using
' Example with a Custom Trained Font Being used:
Dim ocrTesseractCustomerLang = New IronTesseract()
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata")
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest)
Using ocrInput As New OcrInput()
ocrInput.LoadPdf("images\mixed-lang.pdf")
Dim ocrResult = ocrTesseractCustomerLang.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Using
<p>IronOCR prend en charge 125 langues internationales.</p> <p>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<a href="/csharp/ocr/languages/" target="_blank" rel="nofollow noopener noreferrer">Page des langues</a>.</p> <p>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.</p>
using IronOcr;
using IronSoftware.Drawing;
// We can delve deep into OCR results as an object model of
// Pages, Barcodes, Paragraphs, Lines, Words and Characters
// This allows us to explore, export and draw OCR content using other APIs/
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("example.tiff", pages);
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
// Page object
int PageNumber = page.PageNumber;
string PageText = page.Text;
int PageWordCount = page.WordCount;
// null if we dont set Ocr.Configuration.ReadBarCodes = true;
OcrResult.Barcode[] Barcodes = page.Barcodes;
AnyBitmap PageImage = page.ToBitmap(ocrInput);
double PageWidth = page.Width;
double PageHeight = page.Height;
double PageRotation = page.Rotation; // angular correction in degrees from OcrInput.Deskew()
foreach (var paragraph in page.Paragraphs)
{
// Pages -> Paragraphs
int ParagraphNumber = paragraph.ParagraphNumber;
string ParagraphText = paragraph.Text;
AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput);
int ParagraphX_location = paragraph.X;
int ParagraphY_location = paragraph.Y;
int ParagraphWidth = paragraph.Width;
int ParagraphHeight = paragraph.Height;
double ParagraphOcrAccuracy = paragraph.Confidence;
OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Pages -> Paragraphs -> Lines
int LineNumber = line.LineNumber;
string LineText = line.Text;
AnyBitmap LineImage = line.ToBitmap(ocrInput);
int LineX_location = line.X;
int LineY_location = line.Y;
int LineWidth = line.Width;
int LineHeight = line.Height;
double LineOcrAccuracy = line.Confidence;
double LineSkew = line.BaselineAngle;
double LineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Pages -> Paragraphs -> Lines -> Words
int WordNumber = word.WordNumber;
string WordText = word.Text;
AnyBitmap WordImage = word.ToBitmap(ocrInput);
int WordX_location = word.X;
int WordY_location = word.Y;
int WordWidth = word.Width;
int WordHeight = word.Height;
double WordOcrAccuracy = word.Confidence;
foreach (var character in word.Characters)
{
// Pages -> Paragraphs -> Lines -> Words -> Characters
int CharacterNumber = character.CharacterNumber;
string CharacterText = character.Text;
AnyBitmap CharacterImage = character.ToBitmap(ocrInput);
int CharacterX_location = character.X;
int CharacterY_location = character.Y;
int CharacterWidth = character.Width;
int CharacterHeight = character.Height;
double CharacterOcrAccuracy = character.Confidence;
// Output alternative symbols choices and their probability.
// Very useful for spellchecking
OcrResult.Choice[] Choices = character.Choices;
}
}
}
}
}
Imports IronOcr
Imports IronSoftware.Drawing
' We can delve deep into OCR results as an object model of
' Pages, Barcodes, Paragraphs, Lines, Words and Characters
' This allows us to explore, export and draw OCR content using other APIs/
Private ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
Dim ocrInput As New OcrInput()
Dim pages = New Integer() { 1, 2 }
ocrInput.LoadImageFrames("example.tiff", pages)
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
For Each page In ocrResult.Pages
' Page object
Dim PageNumber As Integer = page.PageNumber
Dim PageText As String = page.Text
Dim PageWordCount As Integer = page.WordCount
' null if we dont set Ocr.Configuration.ReadBarCodes = true;
Dim Barcodes() As OcrResult.Barcode = page.Barcodes
Dim PageImage As AnyBitmap = page.ToBitmap(ocrInput)
Dim PageWidth As Double = page.Width
Dim PageHeight As Double = page.Height
Dim PageRotation As Double = page.Rotation ' angular correction in degrees from OcrInput.Deskew()
For Each paragraph In page.Paragraphs
' Pages -> Paragraphs
Dim ParagraphNumber As Integer = paragraph.ParagraphNumber
Dim ParagraphText As String = paragraph.Text
Dim ParagraphImage As AnyBitmap = paragraph.ToBitmap(ocrInput)
Dim ParagraphX_location As Integer = paragraph.X
Dim ParagraphY_location As Integer = paragraph.Y
Dim ParagraphWidth As Integer = paragraph.Width
Dim ParagraphHeight As Integer = paragraph.Height
Dim ParagraphOcrAccuracy As Double = paragraph.Confidence
Dim paragrapthText_direction As OcrResult.TextFlow = paragraph.TextDirection
For Each line In paragraph.Lines
' Pages -> Paragraphs -> Lines
Dim LineNumber As Integer = line.LineNumber
Dim LineText As String = line.Text
Dim LineImage As AnyBitmap = line.ToBitmap(ocrInput)
Dim LineX_location As Integer = line.X
Dim LineY_location As Integer = line.Y
Dim LineWidth As Integer = line.Width
Dim LineHeight As Integer = line.Height
Dim LineOcrAccuracy As Double = line.Confidence
Dim LineSkew As Double = line.BaselineAngle
Dim LineOffset As Double = line.BaselineOffset
For Each word In line.Words
' Pages -> Paragraphs -> Lines -> Words
Dim WordNumber As Integer = word.WordNumber
Dim WordText As String = word.Text
Dim WordImage As AnyBitmap = word.ToBitmap(ocrInput)
Dim WordX_location As Integer = word.X
Dim WordY_location As Integer = word.Y
Dim WordWidth As Integer = word.Width
Dim WordHeight As Integer = word.Height
Dim WordOcrAccuracy As Double = word.Confidence
For Each character In word.Characters
' Pages -> Paragraphs -> Lines -> Words -> Characters
Dim CharacterNumber As Integer = character.CharacterNumber
Dim CharacterText As String = character.Text
Dim CharacterImage As AnyBitmap = character.ToBitmap(ocrInput)
Dim CharacterX_location As Integer = character.X
Dim CharacterY_location As Integer = character.Y
Dim CharacterWidth As Integer = character.Width
Dim CharacterHeight As Integer = character.Height
Dim CharacterOcrAccuracy As Double = character.Confidence
' Output alternative symbols choices and their probability.
' Very useful for spellchecking
Dim Choices() As OcrResult.Choice = character.Choices
Next character
Next word
Next line
Next paragraph
Next page
<p>IronOCR renvoie un objet de résultat avancé pour chaque page qu'il scanne à l'aide de Tesseract 5. Il contient <strong>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</strong> pour chacun d'entre eux :</p> <ul> <li>Page</li> <li>Paragraphe</li> <li>Ligne de texte</li> <li>Mot</li> <li>Caractère individuel</li> <li>et code-barres</li> </ul>
Qu'il s'agisse de questions sur les produits, l'intégration ou les licences, l'équipe de développement des produits Iron est à votre disposition pour répondre à toutes vos questions. Prenez contact et entamez un dialogue avec Iron pour tirer le meilleur parti de notre bibliothèque dans le cadre de votre projet.
Poser une questionQu'il s'agisse de pages de passeport, de factures, de relevés bancaires, de courrier, de cartes de visite ou de reçus, la reconnaissance optique de caractères (OCR) est un domaine de recherche basé sur la reconnaissance des formes, la vision par ordinateur et l'apprentissage automatique. Les entreprises utilisent l'OCR dans tous les services pour extraire du texte dans les systèmes comptables et financiers, la numérisation des entreprises, la gestion du contenu de l'entreprise et les systèmes d'établissement de rapports.
En plus de construire d'autres exemples de réussites. IronOCR apporte une valeur ajoutée à Google Tesseract et Microsoft 2021 Azure Cognitive Services avec IronOCR - une bibliothèque native d'OCR.
Si vous souhaitez convertir des images du monde réel avec une précision de 99 %, lisez la suite pour découvrir comment IronOCR vous permet de créer une application de reconnaissance optique de caractères efficace, précise, évolutive et presque humaine.
La reconnaissance optique de caractères (OCR) est considérée comme un phénomène résolu en raison de l'immense confiance que les différentes API accordent à la protection. Cependant, les différents produits sont souvent rigides et imprécis et échouent dans les applications du monde réel. De la même manière, l'OCR de Tesseract fonctionne avec des textes parfaits imprimés à la machine et en haute résolution.
Cela vous convient-il ?
Dans le monde réel, les textes imprimés et manuscrits ne sont pas toujours parfaits et ne bénéficient pas toujours d'une haute résolution. Au lieu de cela, la rotation, l'obliquité, le faible DPI, le bruit de fond et tous les fléaux des imperfections numériques sont pris en charge par IronOCR, y compris l'extraction de texte manuscrit à partir de fichiers d'images. Nous garantissons un document précis à 99,8 - 100 pour cent, consultable avec un support multiplateforme qui comprend Windows, Linux, macOS, Microsoft Azure, AWS et Docker - il y a une raison pour laquelle les développeurs de C# ; choisissent IronOCR sur l'OCR (de base) de Tesseract - il s'agit avant tout d'apporter une valeur ajoutée.
Equipez-vous du meilleur !
En outre, IronOCR vous permet de traiter rapidement les documents images. Si ce n'est pas tout, les fonctionnalités de l'API IronOCR comprennent également ce qui suit :
Transition de l'installation native de .dlls ou d'exes vers une source unique de vérité - développez à l'aide d'une bibliothèque de composants .NET unique et native en utilisant un simple C&num ; API qui prend en charge :
L'art de l'API IronOCR ne s'arrête pas là ; vous pouvez continuer à explorer notre avance technique caractéristiques de plus. Nous réduisons la complexité des affaires, une étape à la fois, en développant des solutions fiables pour rationaliser les applications de traitement des documents et maximiser les revenus des entreprises en offrant des fonctionnalités de pointe ont intégré :
Notre processus de reconnaissance optique de caractères commence par un prétraitement automatisé de l'image, afin d'améliorer le fichier image et le taux de réponse de l'extraction. IronOCR ajoute de la valeur à votre travail car il permet aux utilisateurs d'extraire l'exemple de fichier image de base dans une version optimale de lui-même. IronOCR couvre toutes les bases :
Le service IronOCR fonctionnant de manière optimale sur les fichiers d'image 300DPI (points par pouce), toute image se situant sensiblement en dehors de 200-300 DPI est rééchantillonnée pour s'adapter à la plage ciblée.
Cela se traduit par une réduction de l'échantillonnage d'images de 600 DPI à 300 DPI ou par une augmentation de l'échantillonnage d'images de 100 DPI à 200 DPI avec un taux de confiance de 99 %.
Les services cognitifs d'IronOCR étant conçus pour fonctionner sur des images monochromatiques, toutes les images colorées ou en niveaux de gris sont converties en monochromatiques à l'aide d'un algorithme de binarisation adaptatif.
L'algorithme compare les densités de pixels à l'intérieur d'une zone qui détermine le seuil à utiliser pour convertir les pixels en monochromes.
IronOCR recherche des lignes de texte et des motifs de caractères pour désaligner et faire pivoter automatiquement les ressources d'images d'entrée selon l'orientation souhaitée.
Avec IronOCR, les fichiers d'images sont automatiquement analysés pour détecter la présence et la quantité de bruit. Le bruit est essentiellement constitué par les "taches" que l'on trouve sur les images numérisées. Notre algorithme adaptatif supprime ensuite le bruit en fonction de la taille des particules de bruit.
Dès que le fichier d'image échantillon est prétraité, IronOCR divise le fichier d'image d'entrée en différentes zones de traitement.
Une autre étape de préparation consiste à diviser l'image de référence en différentes zones logiques. IronOCR localise d'abord le texte et les images dans l'image à l'aide des espaces blancs et des motifs ; la zone de texte est séparée des images.
Il est ensuite divisé en zones - paragraphes, colonnes et blocs de texte. Les images et les pixels non textuels restants sont identifiés pour être omis lors de la reconnaissance du texte et inclus dans la sortie intelligente. IronOCR marque ensuite les zones de texte comme des tableaux à l'aide de lignes de quadrillage et de blocs de texte.
Effectuer plusieurs étapes interconnectées qui convertissent les taches de pixels en fils de texte d'une seule ligne dans lesquels les utilisateurs peuvent effectuer des recherches. Ces étapes comprennent la segmentation des caractères, la classification adaptative, les références au dictionnaire et d'autres processus connexes qui contribuent à l'obtention d'un texte extrait optimal.
Avec le service API IronOCR, nous avons testé notre outil à travers plusieurs exemples de fichiers de données dans plusieurs langues qui incluent les niveaux de mots, la précision des symboles et la conservation de la mise en page dans les formats Microsoft Office. Certains paramètres sont testés automatiquement, tandis que d'autres font l'objet de vérifications visuelles.
IronOCR vous permet d'ajouter des fonctionnalités OCR multiplateformes avec plusieurs formats d'entrée à une chaîne de texte simple dans laquelle vous pouvez effectuer des recherches. Pour améliorer votre productivité avec IronOCR, commencez par utiliser notre version gratuite d'IronOCR tutoriel qui vous guide dans l'utilisation d'IronOCR. Téléchargez notre programme d'installation NuGet dès aujourd'hui, et explorez avec une clé d'essai gratuite ou connectez-vous avec une assistance personnelle 24h/24 et 7j/7. Faites évoluer vos besoins grâce à notre durée de vie octroi de licencesquelle que soit la taille de votre équipe.
Fonctionne avec .NET, VB.NET, C#
Voir les licencesGratuit 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 comparaisonC# 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.
Tutoriel .NET de conversion d'image 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