Configuration OCR pour une lecture avancée

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR propose des méthodes avancées de lecture de scans telles que ReadPassport, ReadLicensePlate et ReadPhoto qui vont au-delà de l'OCR standard. Ces méthodes sont fournies par le package IronOcr.Extensions.AdvancedScan. Pour affiner la manière dont ces méthodes traitent le texte, IronOCR expose la classe TesseractConfiguration, offrant aux développeurs un contrôle total sur la liste blanche et la liste noire des caractères, la détection des BarCode, la lecture des tableaux de données, et bien plus encore.

Cet article traite des propriétés TesseractConfiguration disponibles pour une lecture approfondie et propose des exemples pratiques de configuration de l'OCR dans des scénarios concrets.

Guide de démarrage rapide : limiter la sortie OCR à une liste blanche de caractères

Définissez WhiteListCharacters sur TesseractConfiguration avant d'appeler Read. Tout caractère ne figurant pas dans la liste blanche est automatiquement supprimé du résultat, ce qui élimine le bruit sans aucun post-traitement.

  1. Installez IronOCR avec le Gestionnaire de Packages NuGet

    PM > Install-Package IronOcr
  2. Copiez et exécutez cet extrait de code.

    var result = new IronTesseract() { Configuration = new TesseractConfiguration { WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789- " } }.Read(new OcrInput("image.png")); Console.WriteLine(result.Text);
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer


Propriétés de TesseractConfiguration

La classe TesseractConfiguration fournit les propriétés suivantes pour personnaliser le comportement de l'OCR. Celles-ci sont définies via IronTesseract.Co/nfiguration.

Propriété Type Description
Caractères autorisés string Seuls les caractères présents dans cette chaîne seront reconnus dans le résultat de l'OCR. Tous les autres caractères sont exclus.
Caractères interdits string Les caractères de cette chaîne sont activement ignorés et supprimés de la sortie OCR.
ReadBarCodes bool Active ou désactive la détection des codes-barres dans le document pendant le traitement OCR.
ReadDataTables bool Active ou désactive la détection de la structure des tableaux dans le document à l'aide de Tesseract.
PageSegmentationMode TesseractPageSegmentationMode Détermine comment Tesseract segmente l'image d'entrée. Les options incluent AutoOsd, Auto, SingleBlock, SingleLine, SingleWord, et plus encore.
RenderSearchablePdf bool Lorsqu'elle est activée, la sortie OCR peut être enregistrée sous forme de PDF consultable avec une couche de texte invisible.
RenderHocr bool Lorsqu'elle est activée, la sortie OCR inclut des données hOCR pour un traitement ultérieur ou une exportation.
TesseractVariables Dictionary<string, object> Offre un accès direct aux variables de configuration de bas niveau de Tesseract pour un contrôle précis.

Le dictionnaire TesseractVariables va encore plus loin, en exposant des centaines de paramètres sous-jacents du moteur Tesseract pour les cas où les propriétés de haut niveau ne suffisent pas.

Les exemples ci-dessous illustrent chaque groupe de propriétés, en commençant par la liste blanche de caractères.

Configuration d'une liste blanche de caractères pour les plaques d'immatriculation

Un cas d'utilisation courant de WhiteListCharacters consiste à limiter la sortie OCR aux seuls caractères pouvant apparaître sur une plaque d'immatriculation : lettres majuscules, chiffres, tirets et espaces. Cela élimine le bruit et améliore la précision en indiquant au moteur d'ignorer tout ce qui ne fait pas partie du jeu de caractères attendu.

Entrée

Le registre d'immatriculation de véhicule suivant contient un mélange de majuscules, de minuscules et de symboles spéciaux (@, $, #, |, *), et la ponctuation.

Fiche d'immatriculation de véhicule avec caractères mixtes pour la démonstration de la liste blanche OCR

BlackListCharacters complète la liste blanche en excluant activement les symboles de bruit connus tels que , and*`.

:path=/static-assets/ocr/content-code-examples/how-to/ocr-configurations-for-advanced-reading.cs
using IronOcr;

// Initialize the Tesseract OCR engine
IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    // Whitelist only characters that appear on license plates
    WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789- ",

    // Blacklist common noise characters
    BlackListCharacters = "`~@#$%&*",
};

var ocrInput = new OcrInput();
// Load the input image
ocrInput.LoadImage("advanced-input.png");
// Perform OCR on the input image with ReadPhoto method
var results = ocr.ReadPhoto(ocrInput);

// Print the filtered text result to the console
Console.WriteLine(results.Text);
Imports IronOcr

' Initialize the Tesseract OCR engine
Dim ocr As New IronTesseract()

ocr.Configuration = New TesseractConfiguration With {
    ' Whitelist only characters that appear on license plates
    .WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789- ",
    
    ' Blacklist common noise characters
    .BlackListCharacters = "`~@#$%&*"
}

Dim ocrInput As New OcrInput()
' Load the input image
ocrInput.LoadImage("advanced-input.png")
' Perform OCR on the input image with ReadPhoto method
Dim results = ocr.ReadPhoto(ocrInput)

' Print the filtered text result to the console
Console.WriteLine(results.Text)
$vbLabelText   $csharpLabel

Résultat

Résultat OCR affichant uniquement les caractères des plaques d'immatriculation figurant sur la liste blanche

Le filtrage par liste blanche est clairement visible dans les résultats :

  • " Plate: ABC-1234 " devient " P ABC-1234 ". Le mot " late: " en minuscules est supprimé, tandis que le numéro de plaque est conservé tel quel.
  • " VIN : 1HGBH41JXMN109186 " devient " VIN 1HGBH41JXMN109186 ". Les deux-points sont supprimés, mais le VIN en majuscules et le numéro complet sont conservés.
  • " Propriétaire : john.doe@email.com " devient " O ". Les minuscules et la ponctuation ont été supprimées.
  • " Région : CA-90210 | " Zone #5 " devient " R CA-90210 Z 5 ". Le caractère pipe (|) and hash (#) sont supprimés, tandis que les lettres majuscules et les chiffres sont conservés.
  • " Tarif : 125,00 $ + taxes* " devient " F 12500 ". Le signe dollar, la virgule décimale, le signe plus et le mot " tax " en minuscules sont tous supprimés.
  • " Ref: ~record_v2^final " devient " R 2 ". Le tilde (~), le trait de soulignement, le signe d'insertion (^) et tous les caractères en minuscules sont supprimés.

La même approche WhiteListCharacters et BlackListCharacters fonctionne pour tout type de document, pas seulement pour les plaques d'immatriculation. La section suivante montre comment étendre une lecture pour détecter des BARCODES et des structures de tableaux en un seul passage.

Configuration de la lecture des BarCode et des tableaux de données

IronOCR peut détecter les Barcodes et les tableaux structurés dans les documents, en plus du texte. Ces fonctionnalités sont contrôlées via TesseractConfiguration :

IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    // Enable barcode detection within documents
    ReadBarCodes = true,

    // Enable table structure detection
    ReadDataTables = true,
};
IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    // Enable barcode detection within documents
    ReadBarCodes = true,

    // Enable table structure detection
    ReadDataTables = true,
};
Dim ocr As New IronTesseract()

ocr.Configuration = New TesseractConfiguration With {
    .ReadBarCodes = True,
    .ReadDataTables = True
}
$vbLabelText   $csharpLabel
  • ReadBarCodes : lorsqu'il est défini sur true, IronOCR analyse le document à la recherche de BarCodes en plus du texte. Définissez sur false pour ignorer la détection des BarCodes et accélérer le traitement lorsque des BarCodes ne sont pas attendus.
  • ReadDataTables : lorsqu'il est défini sur true, Tesseract tente de détecter et de préserver les structures de tableaux dans le document. Ceci est utile pour les factures, les rapports et autres documents sous forme de tableaux.

Ces options peuvent être combinées avec WhiteListCharacters et BlackListCharacters pour un contrôle précis sur ce qui est extrait de documents complexes.

Si le filtrage et la détection déterminent ce qui est extrait, l'interprétation de la mise en page est un aspect distinct. La section suivante explique comment choisir le bon PageSegmentationMode en fonction du type de document.

Contrôle du mode de segmentation des pages

PageSegmentationMode indique à Tesseract comment segmenter l'image d'entrée avant la reconnaissance. Le choix d'un mode inadapté à une mise en page donnée entraîne une lecture erronée ou l'omission totale du texte par le moteur.

Mode Cas d'utilisation
AutoOsd Analyse automatique de la mise en page avec détection de l'orientation et du script
Auto Analyse automatique de la mise en page sans OSD (par défaut)
SingleColumn En supposant que l'image représente une seule colonne de texte
SingleBlock On suppose que l'image est un bloc de texte unique et homogène
SingleLine En supposant que l'image ne comporte qu'une seule ligne de texte
SparseText Recherche autant de texte que possible, dans n'importe quel ordre

Pour une étiquette ou une bannière contenant une seule ligne, SingleLine élimine l'analyse multi-blocs et améliore à la fois la vitesse et la précision.

Entrée

single-line-label.png est une étiquette d'expédition étroite comportant exactement une ligne de texte en gras de police Courier : SHIPPING LABEL: TRK-2024-XR9-001.

Étiquette d'expédition sur une seule ligne pour le mode de segmentation OCR SingleLine
IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    PageSegmentationMode = TesseractPageSegmentationMode.SingleLine,
};

using OcrInput input = new OcrInput();
input.LoadImage("single-line-label.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    PageSegmentationMode = TesseractPageSegmentationMode.SingleLine,
};

using OcrInput input = new OcrInput();
input.LoadImage("single-line-label.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr

Dim ocr As New IronTesseract()

ocr.Configuration = New TesseractConfiguration With {
    .PageSegmentationMode = TesseractPageSegmentationMode.SingleLine
}

Using input As New OcrInput()
    input.LoadImage("single-line-label.png")

    Dim result As OcrResult = ocr.Read(input)
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Pour une page numérisée présentant un placement irrégulier du texte, SparseText récupère plus de contenu que Auto.

Entrée

receipt-scan.png est un ticket de caisse thermique de Corner Market comportant quatre lignes (café, muffin, jus de fruits, barre granola), un séparateur en pointillés, un sous-total, la taxe et le total. Il s'agit d'un type de mise en page où la segmentation en blocs fixes omet des entrées à différentes positions horizontales.

Reçu thermique pour le mode de segmentation OCR SparseText
IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    PageSegmentationMode = TesseractPageSegmentationMode.SparseText,
};

using OcrInput input = new OcrInput();
input.LoadImage("receipt-scan.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    PageSegmentationMode = TesseractPageSegmentationMode.SparseText,
};

using OcrInput input = new OcrInput();
input.LoadImage("receipt-scan.png");

OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr

Dim ocr As New IronTesseract()

ocr.Configuration = New TesseractConfiguration With {
    .PageSegmentationMode = TesseractPageSegmentationMode.SparseText
}

Using input As New OcrInput()
    input.LoadImage("receipt-scan.png")

    Dim result As OcrResult = ocr.Read(input)
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Une fois la segmentation de la mise en page adaptée au type de document, l'étape suivante consiste à contrôler le format de sortie pour le traitement en aval.

Génération de PDF consultables et de sortie hOCR

RenderSearchablePdf et RenderHocr contrôlent les formats de sortie qu'IronOCR génère en plus du résultat en texte brut.

RenderSearchablePdf intègre une couche de texte invisible par-dessus l'image d'origine, produisant un PDF dans lequel les utilisateurs peuvent rechercher et copier du texte tandis que l'image numérisée reste visible. Il s'agit du format de sortie standard pour les workflows d'archivage de documents.

Entrée

scanned-document.pdf est une lettre commerciale d'une page émanant d'IronOCR Solutions Ltd. (datée du 15 mars 2024, référence DOC-2024-OCR-0315). Le résultat est enregistré sous le nom searchable-output.pdf.

IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    RenderSearchablePdf = true,
};

using OcrInput input = new OcrInput();
input.LoadPdf("scanned-document.pdf");

OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    RenderSearchablePdf = true,
};

using OcrInput input = new OcrInput();
input.LoadPdf("scanned-document.pdf");

OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
Imports IronTesseract

Dim ocr As New IronTesseract()

ocr.Configuration = New TesseractConfiguration With {
    .RenderSearchablePdf = True
}

Using input As New OcrInput()
    input.LoadPdf("scanned-document.pdf")

    Dim result As OcrResult = ocr.Read(input)
    result.SaveAsSearchablePdf("searchable-output.pdf")
End Using
$vbLabelText   $csharpLabel

Résultat

Le résultat est un fichier PDF qui a l'apparence du fichier d'origine mais qui contient une couche de texte masquée. Ouvrez searchable-output.pdf et utilisez Ctrl+F pour vérifier que le texte intégré est consultable et copiable.

RenderHocr produit un document hOCR, un fichier HTML qui encode le contenu textuel ainsi que les coordonnées du cadre de sélection pour chaque mot. Cela s'avère utile lorsque des outils en aval nécessitent un positionnement précis des mots, par exemple les moteurs de rédaction ou l'analyse de la mise en page des documents.

Entrée

document-page.png est une page de document intitulée " Résumé trimestriel T1 2024 " et comportant deux paragraphes de données financières couvrant le chiffre d'affaires, les coûts d'exploitation et les moteurs de croissance. Le résultat est enregistré sous le nom output.html.

Entrée de page de document pour la sortie du cadre de sélection hOCR
IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    RenderHocr = true,
};

using OcrInput input = new OcrInput();
input.LoadImage("document-page.png");

OcrResult result = ocr.Read(input);
result.SaveAsHocrFile("output.html");
IronTesseract ocr = new IronTesseract();

ocr.Co/nfiguration = new TesseractConfiguration
{
    RenderHocr = true,
};

using OcrInput input = new OcrInput();
input.LoadImage("document-page.png");

OcrResult result = ocr.Read(input);
result.SaveAsHocrFile("output.html");
Imports IronTesseract

Dim ocr As New IronTesseract()

ocr.Configuration = New TesseractConfiguration With {
    .RenderHocr = True
}

Using input As New OcrInput()
    input.LoadImage("document-page.png")

    Dim result As OcrResult = ocr.Read(input)
    result.SaveAsHocrFile("output.html")
End Using
$vbLabelText   $csharpLabel

Résultat

output.html encode chaque mot reconnu avec les coordonnées de son cadre de sélection. Ouvrez le fichier dans un navigateur pour inspecter la structure hOCR, ou transmettez-le à un outil en aval pour une analyse de mise en page ou une expurgation.

Les deux indicateurs peuvent être activés simultanément si vous avez besoin des trois formats de sortie (texte brut, PDF consultable et hOCR) à partir d'un seul appel de lecture.

Ces indicateurs de sortie fonctionnent indépendamment de la langue lue, y compris les scripts non latins. La section suivante montre comment appliquer un filtrage de caractères à un texte japonais.

Filtrage des caractères Unicode pour les documents internationaux

Pour les documents internationaux en chinois, japonais ou coréen, les propriétés WhiteListCharacters et BlackListCharacters prennent en charge les caractères Unicode. Cela vous permet de limiter la sortie à des scripts spécifiques, tels que le hiragana et le katakana uniquement pour le japonais.

Veuillez noter Assurez-vous que le pack de langue correspondant a été installé (par exemple, IronOcr.Languages.Japanese) avant de continuer.

Entrée

Le document contient un titre (テスト), une phrase en japonais mêlant hiragana et katakana avec des variantes de marques de voyelles (プ, で), une ligne de prix comportant des symboles de bruit interdits (★, ■) et des kanji (価格), ainsi qu'une ligne de note comportant un autre symbole interdit (§), d'autres kanji (購入), des variantes de marques vocaliques supplémentaires (プ, デ) et des katakana de base (メモ, ール). La liste blanche n'autorise que les caractères hiragana de base, les caractères katakana de base, les chiffres et la ponctuation japonaise courante ; Les trois symboles de bruit sont explicitement interdits.

Configuration avancée de l'OCR Saisie en japonais

Les plages de caractères Unicode pour le hiragana et le katakana sont transmises sous forme de chaînes littérales dans WhiteListCharacters, les symboles de bruit étant répertoriés dans BlackListCharacters.

Avertissement Il se peut que la console ne prenne pas en charge l'affichage des caractères Unicode. La redirection de la sortie vers un fichier .txt est un moyen fiable de vérifier les résultats lorsque l'on traite ce type de caractères.

:path=/static-assets/ocr/content-code-examples/how-to/ocr-configurations-for-advanced-reading-jp.cs
using IronOcr;
using System.IO;

IronTesseract ocr = new IronTesseract();

ocr.Configuration = new TesseractConfiguration
{
    // Whitelist only Hiragana, Katakana, numbers, and common Japanese punctuation
    WhiteListCharacters = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん" +
                            "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン" +
                            "0123456789、。?!()¥ー",

    // Blacklist common noise/symbols you want to ignore
    BlackListCharacters = "★■§",
};

var ocrInput = new OcrInput();

// Load Japanese input image
ocrInput.LoadImage("jp.png");

// Perform OCR on the input image with ReadPhoto method
var results = ocr.ReadPhoto(ocrInput);

// Write the text result directly to a file named "output.txt"
File.WriteAllText("output.txt", results.Text);

// You can add this line to confirm the file was saved:
Console.WriteLine("OCR results saved to output.txt");
Imports IronOcr
Imports System.IO

Dim ocr As New IronTesseract()

ocr.Configuration = New TesseractConfiguration With {
    .WhiteListCharacters = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん" &
                           "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン" &
                           "0123456789、。?!()¥ー",
    .BlackListCharacters = "★■§"
}

Dim ocrInput As New OcrInput()

' Load Japanese input image
ocrInput.LoadImage("jp.png")

' Perform OCR on the input image with ReadPhoto method
Dim results = ocr.ReadPhoto(ocrInput)

' Write the text result directly to a file named "output.txt"
File.WriteAllText("output.txt", results.Text)

' You can add this line to confirm the file was saved:
Console.WriteLine("OCR results saved to output.txt")
$vbLabelText   $csharpLabel

Résultat

Configuration avancée de l'OCR - Sortie en japonais

Le résultat filtré complet est disponible sous forme de fichier texte : jp-output.txt.

La liste blanche ne comprenant que les caractères de base en hiragana et en katakana, les variantes dérivées avec marque de voyelle, telles que プ (pu) et デ (de), sont supprimées. Les caractères kanji tels que 価格 (prix) et 購入 (achat) sont également exclus, car ils ne font pas partie du jeu de caractères autorisé. Les symboles figurant sur la liste noire, tels que , et §, sont systématiquement supprimés, quelle que soit la liste blanche.

Quelle est la prochaine étape ?

Maintenant que vous savez comment configurer IronOCR pour des scénarios de lecture avancés, découvrez :

Pour une utilisation en production, n'oubliez pas d'obtenir une licence afin de supprimer les filigranes et d'accéder à toutes les fonctionnalités.

Questions Fréquemment Posées

Qu'est-ce que TesseractConfiguration dans IronOCR?

La configuration Tesseract dans IronOCR permet aux utilisateurs de personnaliser les paramètres OCR, activant des fonctionnalités de lecture avancées telles que les listes blanches de caractères, la lecture de codes-barres et la prise en charge multilingue.

Comment puis-je configurer une liste blanche de caractères dans IronOCR?

Dans IronOCR, vous pouvez configurer une liste blanche de caractères à l'aide de TesseractConfiguration, ce qui vous permet de spécifier les caractères que le moteur OCR doit reconnaître, utile pour des tâches telles que la lecture des plaques d'immatriculation.

IronOCR peut-il lire les codes-barres et les tableaux de données ?

Oui, IronOCR peut être configuré pour lire les codes-barres et les tableaux de données en ajustant des paramètres spécifiques dans les propriétés TesseractConfiguration pour une extraction précise des données OCR.

IronOCR prend-il en charge les langues internationales telles que le chinois, le japonais et le coréen ?

IronOCR prend en charge les langues internationales, notamment le chinois, le japonais et le coréen, grâce à ses options multilingues TesseractConfiguration.

Quels sont les avantages de l'utilisation de configurations OCR avancées dans IronOCR?

L'utilisation de configurations OCR avancées dans IronOCR permet une reconnaissance de texte plus précise et plus efficace, prenant en charge des tâches spécialisées telles que la reconnaissance de texte spécifique à une langue et l'extraction de données structurées.

Est-il possible d'optimiser IronOCR pour des tâches OCR spécifiques ?

Oui, IronOCR peut être optimisé pour des tâches OCR spécifiques en configurant des paramètres tels que les listes blanches de caractères et en activant la reconnaissance de codes-barres ou de tableaux, améliorant ainsi les performances pour les applications ciblées.

Comment activer la prise en charge multilingue dans IronOCR?

Pour activer la prise en charge multilingue dans IronOCR, vous pouvez ajuster les paramètres de langue dans TesseractConfiguration, permettant ainsi au moteur OCR de reconnaître le texte dans plusieurs langues.

Que sont les listes blanches de caractères et comment sont-elles utilisées dans IronOCR?

Les listes blanches de caractères dans IronOCR sont des listes de caractères spécifiques que le moteur OCR est configuré pour reconnaître, idéales pour des tâches ciblées comme la lecture de chiffres ou de modèles de texte spécifiques.

IronOCR peut-il être utilisé pour lire des formats de données structurés ?

Oui, IronOCR peut être configuré pour lire et traiter des formats de données structurés tels que les codes-barres et les tableaux, offrant ainsi des capacités OCR polyvalentes pour répondre à divers besoins d'extraction de données.

Quelles sont les configurations disponibles dans IronOCR pour la reconnaissance de texte avancée ?

IronOCR propose des configurations telles que des listes blanches de caractères, la prise en charge multilingue et la reconnaissance de codes-barres pour améliorer les capacités avancées de reconnaissance de texte adaptées à des exigences spécifiques.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 5,896,332 | Version : 2026.5 just released
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronOcr
lancez un échantillon regardez votre image se transformer en texte consultable.