Comment utiliser Iron Tesseract en C
Iron Tesseract en C# est utilisé en créant une instance IronTesseract, en la configurant avec des paramètres de langue et d'OCR, puis en appelant la méthode Read() sur un objet OcrInput contenant vos images ou PDFs. Cela convertit les images de texte en PDFs consultables en utilisant le moteur optimisé de Tesseract 5.
IronOCR fournit une API intuitive pour utiliser le Tesseract 5 personnalisé et optimisé, connu sous le nom d'Iron Tesseract. En utilisant IronOCR et IronTesseract, vous serez capable de convertir des images de texte et des documents scannés en texte et PDFs consultables. La bibliothèque prend en charge 125 langues internationales et comprend des fonctionnalités avancées telles que la lecture de codes-barres et la vision par ordinateur.
Démarrage rapide : Configurer IronTesseract en C#
Cet exemple démontre comment configurer IronTesseract avec des paramètres spécifiques et effectuer l'OCR en une seule ligne de code.
-
Installez IronOCR avec le Gestionnaire de Packages NuGet
-
Copiez et exécutez cet extrait de code.
var result = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true, WhiteListCharacters = "ABCabc123" } }.Read(new IronOcr.OcrInput("image.png")); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail de base de l'OCR
- Installez la bibliothèque OCR avec NuGet pour lire les images
- Utiliser Custom `Tesseract 5` pour effectuer l'OCR
- Chargez les documents souhaités, tels que des images ou des fichiers PDF, pour le traitement
- Sortez le texte extrait vers la console ou un fichier
- Enregistrez le résultat en tant que PDF consultable
Comment créer une instance IronTesseract?
Initialiser un objet Tesseract avec ce code :
:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-initialize-irontesseract.cs
using IronOcr;
IronTesseract ocr = new IronTesseract();
Imports IronOcr
Dim ocr As New IronTesseract()
Vous pouvez personnaliser le comportement de IronTesseract en sélectionnant différentes langues, en activant la lecture de codes-barres, et en créant des listes blanches/noires de caractères. IronOcr propose des options de configuration complètes pour affiner votre processus d'OCR :
:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-configure-irontesseract.cs
IronTesseract ocr = new IronTesseract
{
Configuration = new TesseractConfiguration
{
ReadBarCodes = false,
RenderHocr = true,
TesseractVariables = null,
WhiteListCharacters = null,
BlackListCharacters = "`ë|^",
},
MultiThreaded = false,
Language = OcrLanguage.English,
EnableTesseractConsoleMessages = true, // False as default
};
Dim ocr As New IronTesseract With {
.Configuration = New TesseractConfiguration With {
.ReadBarCodes = False,
.RenderHocr = True,
.TesseractVariables = Nothing,
.WhiteListCharacters = Nothing,
.BlackListCharacters = "`ë|^"
},
.MultiThreaded = False,
.Language = OcrLanguage.English,
.EnableTesseractConsoleMessages = True
}
Une fois configuré, vous pouvez utiliser les fonctionnalités de Tesseract pour lire les objets OcrInput. La classe OcrInput fournit des méthodes flexibles pour charger différents formats d'entrée :
:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-read.cs
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.LoadImage("attachment.png");
OcrResult result = ocr.Read(input);
string text = result.Text;
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("attachment.png")
Dim result As OcrResult = ocr.Read(input)
Dim text As String = result.Text
End Using
Pour les scénarios complexes, vous pouvez exploiter les capacités de multithreading pour traiter plusieurs documents simultanément, ce qui améliore considérablement les performances des opérations par lots.
Qu'est-ce que les variables de configuration avancées de Tesseract?
L'interface IronOCR Tesseract permet un contrôle total des variables de configuration de Tesseract via la classe IronOcr.TesseractConfiguration . Ces paramètres avancés vous permettent d'optimiser les performances de l'OCR pour des cas d'utilisation spécifiques, tels que la correction de scans de faible qualité ou la lecture de types de documents spécifiques.
Comment utiliser la configuration Tesseract dans le code?
:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-tesseract-configuration.cs
using IronOcr;
using System;
IronTesseract Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.English;
Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
// Configure Tesseract Engine
Ocr.Configuration.TesseractVariables["tessedit_parallelize"] = false;
using var input = new OcrInput();
input.LoadImage("/path/file.png");
OcrResult Result = Ocr.Read(input);
Console.WriteLine(Result.Text);
Imports IronOcr
Imports System
Private Ocr As New IronTesseract()
Ocr.Language = OcrLanguage.English
Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
' Configure Tesseract Engine
Ocr.Configuration.TesseractVariables("tessedit_parallelize") = False
Dim input = New OcrInput()
input.LoadImage("/path/file.png")
Dim Result As OcrResult = Ocr.Read(input)
Console.WriteLine(Result.Text)
IronOCR propose également une configuration spécialisée pour différents types de documents. Par exemple, lorsque vous lisez des passeports ou traitez des chèques MICR, vous pouvez appliquer des filtres de prétraitement spécifiques et une détection de région pour améliorer la précision.
Exemple de configuration pour des documents financiers :
:path=/static-assets/ocr/content-code-examples/how-to/iron-tesseract-6.cs
// Example: Configure for financial documents
IronTesseract ocr = new IronTesseract
{
Language = OcrLanguage.English,
Configuration = new TesseractConfiguration
{
PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock,
TesseractVariables = new Dictionary<string, object>
{
["tessedit_char_whitelist"] = "0123456789.$,",
["textord_heavy_nr"] = false,
["edges_max_children_per_outline"] = 10
}
}
};
// Apply preprocessing filters for better accuracy
using OcrInput input = new OcrInput();
input.LoadPdf("financial-document.pdf");
input.Deskew();
input.EnhanceResolution(300);
OcrResult result = ocr.Read(input);
Imports IronOcr
' Example: Configure for financial documents
Dim ocr As New IronTesseract With {
.Language = OcrLanguage.English,
.Configuration = New TesseractConfiguration With {
.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock,
.TesseractVariables = New Dictionary(Of String, Object) From {
{"tessedit_char_whitelist", "0123456789.$,"},
{"textord_heavy_nr", False},
{"edges_max_children_per_outline", 10}
}
}
}
' Apply preprocessing filters for better accuracy
Using input As New OcrInput()
input.LoadPdf("financial-document.pdf")
input.Deskew()
input.EnhanceResolution(300)
Dim result As OcrResult = ocr.Read(input)
End Using
Quelle est la liste complète de toutes les variables de configuration de Tesseract ?
Cela peut être défini en utilisant IronTesseract.Configuration.TesseractVariables["key"] = value;. Les variables de configuration vous permettent d'affiner le comportement de l'OCR pour obtenir des résultats optimaux avec vos documents spécifiques. Pour des conseils détaillés sur l'optimisation des performances de l'OCR, consultez notre guide de configuration de l'OCR rapide.
| Variable de configuration Tesseract | Default | Signification |
|---|---|---|
| classifier_num_cp_niveaux | 3 | Nombre de niveaux de taille de l'élagueuse |
| textord_debug_tabfind | 0 | Recherche de l'onglet de débogage |
| textord_debug_bugs | 0 | Activer les résultats relatifs aux bogues dans la recherche par onglets |
| textord_testregion_gauche | -1 | Bord gauche du rectangle de rapport de débogage |
| textord_testregion_top | -1 | Bord supérieur du rectangle de rapport de débogage |
| textord_testregion_droite | 2147483647 | Bord droit du rectangle de débogage |
| textord_testregion_bottom | 2147483647 | Bord inférieur du rectangle de débogage |
| textord_tabfind_show_partitions | 0 | Afficher les limites de la partition, en attente si >1 |
| niveau de débogage de la division devanagari | 0 | Niveau de débogage pour le processus shiro-rekha divisé. |
| bords_max_enfants_par_contour | 10 | Nombre maximal d'enfants à l'intérieur d'un contour de personnage |
| couches enfants maximum des bords | 5 | Nombre maximal de calques enfants imbriqués dans le contour d'un personnage |
| bords_enfants_par_petit-enfant | 10 | Rapport d'importance pour le découpage des contours |
| limite du nombre d'enfants aux bords | 45 | Nombre maximal de trous autorisés dans la tache |
| bords_min_non-trou | 12 | Nombre minimal de pixels pour un caractère potentiel dans la boîte |
| rapport de surface du chemin des bords | 40 | Max lensq/area for acceptable child outline |
| textord_fp_chop_error | 2 | Courbure maximale autorisée des cellules hachées |
| textord_tabfind_afficher_images | 0 | Show image blobs |
| textord_skewsmooth_offset | 4 | Pour un facteur lisse |
| textord_skewsmooth_offset2 | 1 | Pour un facteur lisse |
| textord_test_x | -2147483647 | coordonnées du point de test |
| textord_test_y | -2147483647 | coordonnées du point de test |
| textword_min_blobs_dans_ligne | 4 | Nombre minimal de blobs avant le comptage du gradient |
| textord_spline_minblobs | 8 | Min blobs in each spline segment |
| textord_spline_médianewin | 6 | Size of window for spline segmentation |
| textord_max_blob_overlaps | 4 | Max number of blobs a big blob can overlap |
| textord_min_xhauteur | 10 | Min credible pixel xheight |
| essais_lms_ligne_textord | 12 | Number of linew fits to do |
| vieux_trou_perte | 10 | Max lost before fallback line used |
| version linéaire de Pitsync | 6 | Use new fast algorithm |
| profondeur_fausse_synchronisation_pit | 1 | Max advance fake generation |
| textord_tabfind_show_strokewidths | 0 | Show stroke widths |
| intervalle de matrice de points textord | 3 | Max pixel gap for broken pixed pitch |
| bloc de débogage textord | 0 | Block to do debug on |
| plage de hauteur de textord | 2 | Max range test on pitch |
| pouvoir de veto des mots textord | 5 | Rows required to outvote a veto |
| equationdetect_save_bi_image | 0 | Save input bi image |
| equationdetect_save_spt_image | 0 | Save special character image |
| equationdetect_save_seed_image | 0 | Save the seed image |
| equationdetect_save_merged_image | 0 | Save the merged image |
| poly_debug | 0 | Debug old poly |
| poly_wide_objects_better | 1 | More accurate approx on wide things |
| wordrec_display_splits | 0 | Display splits |
| textord_debug_imprimable | 0 | Make debug windows printable |
| textord_space_size_is_variable | 0 | If true, word delimiter spaces are assumed to have variable width, even though characters have fixed pitch. |
| textord_tabfind_show_initial_partitions | 0 | Show partition bounds |
| textord_tabfind_show_reject_blobs | 0 | Show blobs rejected as noise |
| textord_tabfind_afficher_colonnes | 0 | Show column bounds |
| textord_tabfind_show_blocks | 0 | Show final block bounds |
| textord_tabfind_find_tables | 1 | run table detection |
| devanagari_split_debugimage | 0 | Whether to create a debug image for split shiro-rekha process. |
| textord_show_fixed_cuts | 0 | Draw fixed pitch cell boundaries |
| edge_use_new_outline_complexity | 0 | Use the new outline complexity module |
| edges_debug | 0 | turn on debugging for this module |
| contours_enfants_fix | 0 | Remove boxy parents of char-like children |
| gapmap_debug | 0 | Say which blocks have tables |
| gapmap_utiliser_ends | 0 | Use large space at start and end of rows |
| gapmap_no_isolated_quanta | 0 | Ensure gaps not less than 2quanta wide |
| textord_lourd_nr | 0 | Vigorously remove noise |
| textord_show_initial_rows | 0 | Display row accumulation |
| textord_show_parallel_rows | 0 | Display page correlated rows |
| textord_show_expanded_rows | 0 | Display rows after expanding |
| textord_afficher_dernières_lignes | 0 | Display rows after final fitting |
| textord_show_final_blobs | 0 | Display blob bounds after pre-ass |
| textord_test_paysage | 0 | Tests refer to land/port |
| lignes de base parallèles textord | 1 | Force parallel baselines |
| lignes de base droites de textord | 0 | Force straight baselines |
| textord_anciennes_bases | 1 | Use old baseline algorithm |
| textord_old_xhauteur | 0 | Use old xheight algorithm |
| textord_fix_xheight_bug | 1 | Use spline baseline |
| textord_fix_makerow_bug | 1 | Prevent multiple baselines |
| textord_debug_xheights | 0 | Test xheight algorithms |
| textord_biased_skewcalc | 1 | Bias skew estimates with line length |
| interpolation de textord_skew | 1 | Interpolate across gaps |
| textord_new_initial_xheight | 1 | Use test xheight mechanism |
| textord_debug_blob | 0 | Print test blob information |
| textord_vraiment_vieux_xhauteur | 0 | Use original wiseowl xheight |
| textord_oldbl_debug | 0 | Debug old baseline generation |
| lignes de base de débogage textord | 0 | Debug baseline generation |
| textord_oldbl_paradef | 1 | Use para default mechanism |
| textord_oldbl_splines de séparation | 1 | Split stepped splines |
| textord_oldbl_merge_parts | 1 | Merge suspect partitions |
| vieux_corrfix | 1 | Improve correlation of heights |
| oldbl_xhfix | 0 | Fix bug in modes threshold for xheights |
| mode textord_ocropus | 0 | Make baselines for ocropus |
| textord_tabfind_only_strokewidths | 0 | Only run stroke widths |
| textord_tabfind_show_initiitialtabs | 0 | Show tab candidates |
| textord_tabfind_show_finaltabs | 0 | Show tab vectors |
| textord_afficher_tables | 0 | Show table regions |
| textord_tablefind_show_mark | 0 | Debug table marking steps in detail |
| textord_tablefind_show_stats | 0 | Show page stats used in table finding |
| textord_tablefind_recognize_tables | 0 | Enables the table recognizer for table layout and filtering. |
| textord_all_prop | 0 | All doc is proportial text |
| textord_debug_pitch_test | 0 | Debug on fixed pitch test |
| textord_désactiver_test_de_hauteur | 0 | Turn off dp fixed pitch algorithm |
| test de balle rapide textord | 0 | Do even faster pitch algorithm |
| textord_debug_pitch_metric | 0 | Write full metric stuff |
| textord_show_row_cuts | 0 | Draw row-level cuts |
| textord_show_page_cuts | 0 | Draw page-level cuts |
| triche textord_pitch | 0 | Use correct answer for fixed/prop |
| textord_blockndoc_fixed | 0 | Attempt whole doc/block fixed pitch |
| textord_afficher_mots_initiales | 0 | Display separate words |
| textord_afficher_nouveaux_mots | 0 | Display separate words |
| textord_show_fixed_words | 0 | Display forced fixed pitch words |
| textord_blocksall_fixed | 0 | Moan about prop blocks |
| textord_blocksall_prop | 0 | Moan about fixed pitch blocks |
| textord_blocksall_testing | 0 | Dump stats when moaning |
| mode de test textord | 0 | Do current test |
| textord_pitch_rowsimilarité | 0.08 | Fraction of xheight for sameness |
| mots_initiale_minuscule | 0.5 | Max initial cluster size |
| mots_initiale_majuscule | 0.15 | Min initial cluster spacing |
| mots_propriété_par_défaut_espace | 0.25 | Fraction of xheight |
| mots_espace_fixe_par_défaut | 0.75 | Fraction of xheight |
| limite_fixe_par_défaut_de_mots | 0.6 | Allowed size variance |
| textord_mots_definite_spread | 0.3 | Non-fuzzy spacing region |
| textord_spacesize_ratiofp | 2.8 | Min ratio space/nonspace |
| textord_spacesize_ratioprop | 2 | Min ratio space/nonspace |
| rapport textord_fpiqr | 1.5 | Pitch IQR/Gap IQR threshold |
| textord_max_pitch_iqr | 0.2 | Xh fraction noise in pitch |
| textord_fp_largeur_min | 0.5 | Min width of decent blobs |
| textord_décalage_soulignement | 0.1 | Fraction of x to ignore |
| niveau_debug_ambigs | 0 | Debug level for unichar ambiguities |
| classifier_debug_level | 0 | Classify debug level |
| méthode de normalisation de la classification | 1 | Normalization Method ... |
| niveau_de_débogage_matcher | 0 | Matcher Debug Level |
| drapeaux_debug_matcher | 0 | Matcher Debug Flags |
| niveau_debug_de_classification_de_l'apprentissage | 0 | Learning Debug Level: |
| matcher_permanent_classes_min | 1 | Min # of permanent classes |
| matcher_min_examples_for_prototyping | 3 | Reliable Config Threshold |
| matcher_suffisant_exemples_pour_prototypage | 5 | Enable adaption even if the ambiguities have not been seen |
| classifier_adapter_proto_seuil | 230 | Threshold for good protos during adaptive 0-255 |
| seuil d'adaptation des caractéristiques de classification | 230 | Threshold for good features during adaptive 0-255 |
| seuil de classification_classe_élagage | 229 | Class Pruner Threshold 0-255 |
| multiplicateur de classify_class_pruner | 15 | Class Pruner Multiplier 0-255: |
| classifier_cp_seuil_force | 7 | Class Pruner CutoffStrength: |
| multiplicateur de correspondance d'entiers de classification | 10 | Integer Matcher Multiplier 0-255: |
| niveau_debug_dawg | 0 | Set to 1 for general debug info, to 2 for more details, to 3 to see all the debug messages |
| niveau de débogage du tiret | 0 | Debug level for hyphenated words. |
| taille_petit_mot_stopper | 2 | Size of dict word to be treated as non-dict word |
| niveau_de_débogage_stopper | 0 | Stopper debug level |
| tessedit_truncate_wordchoice_log | 10 | Max words to keep in list |
| max_permuter_attempts | 10000 | Maximum number of different character choices to consider during permutation. This limit is especially useful when user patterns are specified, since overly generic patterns can result in dawg search exploring an overly large number of options. |
| réparer_blobs_non_coupés | 1 | Fix blobs that aren't chopped |
| chop_debug | 0 | Chop debug |
| longueur_de_séparation_couper | 10000 | Split Length |
| même_distance | 2 | Same distance |
| points de contour min_couper | 6 | Min Number of Points on Outline |
| taille_de_pile_de_couture_coupée | 150 | Max number of seams in seam_pile |
| couper_à_l'intérieur_angle | -50 | Min Inside Angle Bend |
| zone de contour min_couper | 2000 | Min Outline Area |
| largeur_max_centrée_couper | 90 | Width of (smaller) chopped blobs above which we don't care that a chop is not near the center. |
| poids_x_y | 3 | X / Y length weight |
| niveau de débogage wordrec | 0 | Debug level for wordrec |
| wordrec_max_join_chunks | 4 | Max number of broken pieces to associate |
| niveau de débogage de la recherche segmentée | 0 | SegSearch debug level |
| segsearch_max_pain_points | 2000 | Maximum number of pain points stored in the queue |
| segsearch_max_futile_classifications | 20 | Maximum number of pain point classifications per chunk that did not result in finding a better word choice. |
| niveau_de_débogage_du_modèle_de_langue | 0 | Language model debug level |
| ordre_ngram_du_modèle_de_langue | 8 | Maximum order of the character ngram model |
| modèle_de_langue_liste_viterbi_nombre_maximum_élaguable | 10 | Maximum number of prunable (those for which PrunablePath() is true) entries in each viterbi list recorded in BLOB_CHOICEs |
| taille maximale de la liste Viterbi du modèle de langage | 500 | Maximum size of viterbi lists recorded in BLOB_CHOICEs |
| longueur minimale du modèle de langage | 3 | Minimum length of compound words |
| wordrec_display_segmentations | 0 | Display Segmentations |
| tessedit_pageseg_mode | 6 | Page seg mode: 0=osd only, 1=auto+osd, 2=auto_only, 3=auto, 4=column, 5=block_vert, 6=block, 7=line, 8=word, 9=word_circle, 10=char,11=sparse_text, 12=sparse_text+osd, 13=raw_line (Values from PageSegMode enum in tesseract/publictypes.h) |
| mode moteur otesedit_ocr | 2 | Which OCR engine(s) to run (Tesseract, LSTM, both). Defaults to loading and running the most accurate available. |
| pageseg_devanagari_split_strategy | 0 | Whether to use the top-line splitting process for Devanagari documents while performing page-segmentation. |
| ocr_devanagari_split_strategy | 0 | Whether to use the top-line splitting process for Devanagari documents while performing ocr. |
| bidi_debug | 0 | Debug level for BiDi |
| appliquer_débogage | 1 | Debug level |
| page de la boîte d'application | 0 | Page number to apply boxes from |
| tessedit_bigram_debug | 0 | Amount of debug output for bigram correction. |
| suppression_du_bruit_de_débogage | 0 | Debug reassignment of small outlines |
| bruit_maxparblob | 8 | Max diacritics to apply to a blob |
| bruit_max par mot | 16 | Max diacritics to apply to a word |
| niveau de débogage x_ht | 0 | Reestimate debug |
| qualité_min_initial_alphas_requis | 2 | alphas in a good word |
| mode d'adaptation tessedit_tess | 39 | Adaptation decision algorithm for tess |
| niveau_de_débogage_multilingue | 0 | Print multilang debug info. |
| niveau_de_débogage_paragraphe | 0 | Print paragraph debug info. |
| tessedit_preserve_min_wd_len | 2 | Only preserve wds longer than this |
| crunch_rating_max | 10 | For adj length in rating per ch |
| indicateurs_de_croûte | 1 | How many potential indicators needed |
| crunch_leave_lc_strings | 4 | Don't crunch words with long lower case strings |
| crunch_leave_uc_strings | 4 | Don't crunch words with long lower case strings |
| crunch_long_repetitions | 3 | Crunch words with long repetitions |
| crunch_debug | 0 | As it says |
| fixsp_non_noise_limit | 1 | How many non-noise blbs either side? |
| fixsp_done_mode | 1 | What constitues done for spacing |
| niveau_de_correction_d_espace_de_débogage | 0 | Contextual fixspace debug |
| x_ht_acceptance_tolérance | 8 | Max allowed deviation of blob top outside of font data |
| x_ht_min_change | 8 | Min change in xht before actually trying it |
| superscript_debug | 0 | Debug level for sub & superscript fixer |
| qualité_jpg | 85 | Set JPEG quality level |
| dpi défini par l'utilisateur | 0 | Specify DPI for input image |
| nombre_min_de_caractères_à_essayer | 50 | Specify minimum characters to try during OSD |
| suspect_level | 99 | Suspect marker level |
| suspect_short_words | 2 | Don't suspect dict wds longer than this |
| mode de rejet de tessedit | 0 | Rejection algorithm |
| tessedit_image_border | 2 | Rej blbs near image edge limit |
| min_sane_x_ht_pixels | 8 | Reject any x-ht lt or eq than this |
| numéro_de_page_tessedit | -1 | -1 -> All pages, else specific page to process |
| tessedit_paralléliser | 1 | Run in parallel where possible |
| lstm_choice_mode | 2 | Allows to include alternative symbols choices in the hOCR output. Valid input values are 0, 1 and 2. 0 is the default value. With 1 the alternative symbol choices per timestep are included. With 2 alternative symbol choices are extracted from the CTC process instead of the lattice. The choices are mapped per character. |
| itérations de choix lstm | 5 | Sets the number of cascading iterations for the Beamsearch in lstm_choice_mode. Note that lstm_choice_mode must be set to a value greater than 0 to produce results. |
| niveau_debug_tosp | 0 | Debug data |
| tosp_espace_suffisant_échantillons_pour_la_médiane | 3 | or should we use mean |
| tosp_redo_kern_limit | 10 | No.samples reqd to reestimate for row |
| tosp_peu_d'échantillons | 40 | No.gaps reqd with 1 large gap to treat as a table |
| tosp_short_row | 20 | No.gaps reqd with few cert spaces to use certs |
| méthode tosp_sanity | 1 | How to avoid being silly |
| taille_maximale_bruit_textord | 7 | Pixel size of noise |
| textord_ligne_de_base_debug | 0 | Baseline debug level |
| textord_noise_sizefraction | 10 | Fraction of size for maxima |
| textord_noise_translimit | 16 | Transitions for normal blob |
| textord_noise_sncount | 1 | super norm blobs to save row |
| utiliser_ambiguïtés_pour_l'adaptation | 0 | Use ambigs for deciding whether to adapt to a character |
| prioriser_division | 0 | Prioritize blob division over chopping |
| classifier_activer_apprentissage | 1 | Enable adaptive classifier |
| tess_cn_matching | 0 | Character Normalized Matching |
| tess_bn_matching | 0 | Baseline Normalized Matching |
| classifier_activer_correspondance_adaptative | 1 | Enable adaptive classifier |
| classifier_utiliser_modèles_pré_adaptés | 0 | Use pre-adapted classifier templates |
| classifier_sauvegarder_modèles_adaptés | 0 | Save adapted templates to a file |
| classifier_activer_débogueur_adaptatif | 0 | Enable match debugger |
| classifier_non-linéaire_norm | 0 | Non-linear stroke-density normalization |
| disable_character_fragments | 1 | Do not include character fragments in the results of the classifier |
| classifier_déboguer_fragments_de_personnages | 0 | Bring up graphical debugging windows for fragments training |
| matcher_debug_fenêtres séparées | 0 | Use two different windows for debugging the matching: One for the protos and one for the features. |
| classify_bln_numeric_mode | 0 | Assume the input is numbers [0-9]. |
| charger_system_dawg | 1 | Load system word dawg. |
| charge_freq_chien | 1 | Load frequent word dawg. |
| charger_unambig_dawg | 1 | Load unambiguous word dawg. |
| charger_punc_dawg | 1 | Load dawg with punctuation patterns. |
| charger_numéro_chien | 1 | Load dawg with number patterns. |
| charger_bigram_dawg | 1 | Load dawg with special word bigrams. |
| utiliser_uniquement_la_première_étape_uft8 | 0 | Use only the first UTF8 step of the given string when computing log probabilities. |
| stopper_pas_de_choix_acceptables | 0 | Make AcceptableChoice() always return false. Useful when there is a need to explore all segmentations |
| segment_nonalphabétique_script | 0 | Don't use any alphabetic-specific tricks. Set to true in the traineddata config file for scripts that are cursive or inherently fixed-pitch |
| enregistrer_doc_words | 0 | Save Document Words |
| fusionner_fragments_dans_la_matrice | 1 | Merge the fragments in the ratings matrix and delete them after merging |
| wordrec_enable_assoc | 1 | Associator Enable |
| force_word_assoc | 0 | force associator to run regardless of what enable_assoc is. This is used for CJK where component grouping is necessary. |
| activer_couper | 1 | Chop enable |
| chop_vertical_creep | 0 | Vertical creep |
| couper_nouvelle_couture_pile | 1 | Use new seam_pile |
| supposer_fixed_pitch_char_segment | 0 | include fixed-pitch heuristics in char segmentation |
| wordrec_skip_no_truth_words | 0 | Only run OCR for words that had truth recorded in BlamerBundle |
| wordrec_debug_blamer | 0 | Print blamer debug messages |
| wordrec_run_blamer | 0 | Try to set the blame for errors |
| save_alt_choices | 1 | Save alternative paths found during chopping and segmentation search |
| language_model_ngram_on | 0 | Turn on/off the use of character ngram model |
| language_model_ngram_use_ only_first_uft8_step | 0 | Use only the first UTF8 step of the given string when computing log probabilities. |
| modèle_de_langue_ngramme_espace_délimité_langue | 1 | Words are delimited by space |
| l'utilisation du modèle de langage et la certitude sigmoïdale | 0 | Use sigmoidal score for certainty |
| tessedit_resegment_from_boxes | 0 | Take segmentation and labeling from box file |
| tessedit_resegment_from_line_boxes | 0 | Conversion of word/line box file to char box file |
| tessedit_train_from_boxes | 0 | Generate training data from boxed chars |
| tessedit_make_boxes_from_boxes | 0 | Generate more boxes from boxed chars |
| tessedit_reconnaissance_ligne_de_train | 0 | Break input into lines and remap boxes if present |
| tessedit_dump_pageseg_images | 0 | Dump intermediate images made during page segmentation |
| tessedit_do_invert | 1 | Try inverting the image in LSTMRecognizeWord |
| tessedit_ambigs_training | 0 | Perform training for ambiguities |
| tessedit_adaptation_debug | 0 | Generate and print debug information for adaption |
| applybox_learn_chars_and_char_frags_mode | 0 | Learn both character fragments (as is done in the special low exposure mode) as well as unfragmented characters. |
| applybox_learn_ngrams_mode | 0 | Each bounding box is assumed to contain ngrams. Only learn the ngrams whose outlines overlap horizontally. |
| tessedit_display_outwords | 0 | Draw output words |
| tessedit_dump_choices | 0 | Dump char choices |
| tessedit_timing_debug | 0 | Print timing stats |
| tessedit_fix_flozzy_spaces | 1 | Try to improve fuzzy spaces |
| tessedit_unrej_any_wd | 0 | Don't bother with word plausibility |
| tessedit_fix_hyphens | 1 | Crunch double hyphens? |
| tessedit_enable_doc_dict | 1 | Add words to the document dictionary |
| polices de débogage tessedit | 0 | Output font info per char |
| rejet du bloc de débogage tessedit | 0 | Block and Row stats |
| tessedit_activer_la_correction_des_bigrammes | 1 | Enable correction based on the word bigram dictionary. |
| tessedit_enable_dict_correction | 0 | Enable single word correction based on the dictionary. |
| activer_la_suppression_du_bruit | 1 | Remove and conditionally reassign small outlines when they confuse layout analysis, determining diacritics vs noise |
| tessedit_minimal_rej_pass1 | 0 | Do minimal rejection on pass 1 output |
| adaptation_test_tessedit | 0 | Test adaption criteria |
| test_pt | 0 | Test for point |
| basé sur le texte du paragraphe | 1 | Run paragraph detection on the post-text-recognition (more accurate) |
| lstm_use_matrix | 1 | Use ratings matrix/beam search with lstm |
| tessedit_bonne_qualité_non_rej | 1 | Reduce rejection on good docs |
| tessedit_use_reject_spaces | 1 | Reject spaces? |
| tessedit_preserve_blk_rej_perfect_wds | 1 | Only rej partially rejected words in block rejection |
| tessedit_preserve_row_rej_perfect_wds | 1 | Only rej partially rejected words in row rejection |
| tessedit_dont_blkrej_good_wds | 0 | Use word segmentation quality metric |
| tessedit_dont_rowrej_good_wds | 0 | Use word segmentation quality metric |
| tessedit_row_rej_good_docs | 1 | Apply row rejection to good docs |
| tessedit_reject_bad_qual_wds | 1 | Reject all bad quality wds |
| tessedit_debug_doc_rejection | 0 | Page stats |
| tessedit_debug_quality_metrics | 0 | Output data to debug file |
| bland_unrej | 0 | unrej potential with no checks |
| unlv_tilde_crunching | 0 | Mark v.bad words for tilde crunch |
| info_police_hogr | 0 | Add font info to hocr output |
| boîtes_de_caractères_hocr | 0 | Add coordinates for each character to hocr output |
| crunch_early_merge_tess_fails | 1 | Before word crunch? |
| crunch_early_convert_bad_unlv_chs | 0 | Take out ~^ early? |
| crunch_terrible_garbage | 1 | As it says |
| crunch_leave_ok_strings | 1 | Don't touch sensible strings |
| crunch_accept_ok | 1 | Use acceptability in okstring |
| crunch_leave_accept_strings | 0 | Don't pot crunch sensible strings |
| crunch_include_numerals | 0 | Fiddle alpha figures |
| tessedit_prefer_joined_punct | 0 | Reward punctuation joins |
| tessedit_write_block_separators | 0 | Write block separators in output |
| tessedit_write_rep_codes | 0 | Write repetition char code |
| tessedit_write_unlv | 0 | Write .unlv output file |
| tessedit_create_txt | 0 | Write .txt output file |
| tessedit_create_hocr | 0 | Write .html hOCR output file |
| tessedit_create_alto | 0 | Write .xml ALTO file |
| tessedit_create_lstmbox | 0 | Write .box file for LSTM training |
| tessedit_create_tsv | 0 | Write .tsv output file |
| tessedit_create_wordstrbox | 0 | Write WordStr format .box output file |
| tessedit_create_pdf | 0 | Write .pdf output file |
| textonly_pdf | 0 | Create PDF with only one invisible text layer |
| suspect_constrain_1Il | 0 | UNLV keep 1Il chars rejected |
| tessedit_minimal_rejection | 0 | Only reject tess failures |
| tessedit_zero_rejection | 0 | Don't reject ANYTHING |
| tessedit_word_for_word | 0 | Make output have exactly one word per WERD |
| tessedit_zero_kelvin_rejection | 0 | Don't reject ANYTHING AT ALL |
| tessedit_rejection_debug | 0 | Adaption debug |
| tessedit_flip_0O | 1 | Contextual 0O O0 flips |
| rej_trust_doc_dawg | 0 | Use DOC dawg in 11l conf. detector |
| rej_1Il_utilise_dict_word | 0 | Use dictword test |
| rej_1Il_trust_permuter_type | 1 | Don't double check |
| rej_use_tess_accepté | 1 | Individual rejection control |
| rej_use_tess_blanks | 1 | Individual rejection control |
| rej_use_good_perm | 1 | Individual rejection control |
| rej_use_sensible_wd | 0 | Extend permuter check |
| rej_alphas_in_number_perm | 0 | Extend permuter check |
| tessedit_create_boxfile | 0 | Output text with boxes |
| tessedit_write_images | 0 | Capture the image from the IPE |
| mode d'affichage interactif | 0 | Run interactively? |
| tessedit_override_permuter | 1 | According to dict_word |
| tessedit_use_primary_params_model | 0 | In multilingual mode use params model of the primary language |
| textord_tabfind_show_vlines | 0 | Debug line finding |
| textord_use_cjk_fp_model | 0 | Use CJK fixed pitch model |
| poly_autoriser_detailed_fx | 0 | Allow feature extractors to see the original outline |
| tessedit_init_config_only | 0 | Only initialize with the config file. Useful if the instance is not going to be used for OCR but say only for layout analysis. |
| textord_equation_detect | 0 | Turn on equation detector |
| textord_tabfind_vertical_text | 1 | Enable vertical detection |
| textord_tabfind_force_vertical_text | 0 | Force using vertical text page mode |
| préserver_les_espaces_intermots | 0 | Preserve multiple interword spaces |
| pageseg_appliquer_masque_musical | 1 | Detect music staff and remove intersecting components |
| mode de hauteur unique de textord | 0 | Script has no xheight, so use a single mode |
| tosp_old_to_method | 0 | Space stats use prechopping? |
| tosp_old_to_constrain_sp_kn | 0 | Constrain relative values of inter and intra-word gaps for old_to_method. |
| tosp_only_use_prop_rows | 1 | Block stats to use fixed pitch rows? |
| tosp_force_wordbreak_on_punct | 0 | Force word breaks on punct to break long lines in non-space delimited langs |
| tosp_utiliser_avant_couper | 0 | Space stats use prechopping? |
| tosp_old_to_bug_fix | 0 | Fix suspected bug in old code |
| tosp_block_use_cert_spaces | 1 | Only stat OBVIOUS spaces |
| tosp_row_use_cert_spaces | 1 | Only stat OBVIOUS spaces |
| tosp_narrow_blobs_not_cert | 1 | Only stat OBVIOUS spaces |
| tosp_row_use_cert_spaces1 | 1 | Only stat OBVIOUS spaces |
| tosp_recovery_isolated_row_stats | 1 | Use row alone when inadequate cert spaces |
| tosp_seulement_de_petites_lacunes_pour_le_kern | 0 | Better guess |
| tosp_all_flips_fuzzy | 0 | Pass ANY flip to context? |
| tosp_fuzzy_limit_all | 1 | Don't restrict kn->sp fuzzy limit to tables |
| textord_pas_de_rejets | 0 | Don't remove noise blobs |
| textord_show_blobs | 0 | Display unsorted blobs |
| textord_show_boxes | 0 | Display unsorted blobs |
| mots_bruits | 1 | Reject noise-like words |
| texteord_noise_rejrows | 1 | Reject noise-like rows |
| textord_noise_debug | 0 | Debug row garbage detector |
| classify_learn_debug_str | Class str to debug learning | |
| fichier_mots_utilisateur | A filename of user-provided words. | |
| suffixe_mots_utilisateur | A suffix of user-provided words located in tessdata. | |
| fichier de modèles d'utilisateur | A filename of user-provided patterns. | |
| suffixe des modèles d'utilisateur | A suffix of user-provided patterns located in tessdata. | |
| fichier de sortie des mots ambigus | Output file for ambiguities found in the dictionary | |
| mot_à_déboguer | Word for which stopper debug information should be printed to stdout | |
| tessedit_char_blacklist | Blacklist of chars not to recognize | |
| liste blanche de caractères tessedit | Whitelist of chars to recognize | |
| tessedit_char_unblacklist | List of chars to override tessedit_char_blacklist | |
| tessedit_write_params_to_file | Write all parameters to the given file. | |
| appliquer_modèle_d'exposition_boîte | .exp | Exposure value follows this pattern in the image filename. The name of the image files are expected to be in the form [lang].[fontname].exp [num].tif |
| chs_leading_punct('`" | Ponctuation initiale | |
| chs_trailing_punct1 | ).,;: ?! | 1st Trailing punctuation |
| chs_trailing_punct2)'`" | 2nd Trailing punctuation | |
| contours_impairs | %| | Nombre de contours non standard |
| contours_2ij!?%":; | Nombre de contours non standard | |
| ponctuation numérique | ., | Punct. chs expected WITHIN numbers |
| caractère_non_reconnu | | | Output char for unidentified blobs |
| ok_répété_ch_non_alphanum_wds | -?*= | Allow NN to unrej |
| ensemble_de_conflit_I_l_1 | Il1 [] | Il1 conflict set |
| type_de_fichier | .tif | Filename extension |
| tessedit_load_sublangs | List of languages to load with this one | |
| séparateur de page | Page separator (default is form feed control character) | |
| classifier_char_norm_range | 0.2 | Character Normalization Range ... |
| classify_max_ratio | 1.5 | Veto ratio between classifier ratings |
| classifier_max_marge_d'incertitude | 5.5 | Veto difference between classifier certainties |
| seuil de correspondance_bon | 0.125 | Good Match (0-1) |
| résultat_adaptatif_fiable_matcher | 0 | Great Match (0-1) |
| seuil de correspondance parfait | 0.02 | Perfect Match (0-1) |
| matcher_bad_match_pad | 0.15 | Bad Match Pad (0-1) |
| marge de notation du matcher | 0.1 | New template margin (0-1) |
| taille_moyenne_bruit_matcher | 12 | Avg. noise blob length |
| matcher_clustering_max_angle_delta | 0.015 | Maximum angle delta for prototype clustering |
| pénalisation_indésirable_déchet | 0 | Penalty to apply when a non-alnum is vertically out of its expected textline position |
| échelle d'évaluation | 1.5 | Rating scaling factor |
| échelle de certitude | 20 | Certainty scaling factor |
| tessedit_class_miss_scale | 0.00390625 | Scale factor for features not used |
| facteur d'élagage adapté à la classification | 2.5 | Prune poor adapted results this much worse than best result |
| seuil d'élagage adapté à la classification | -1 | Threshold at which facteur d'élagage adapté à la classification starts |
| classify_character_fragments_ garbage_certainty_threshold | -3 | Exclude fragments that do not look like whole characters from training and adaption |
| speckle_large_max_size | 0.3 | Max large speckle size |
| pénalité de notation de speckle | 10 | Penalty to add to worst rating for noise |
| xheight_penalty_subscripts | 0.125 | Score penalty (0.1 = 10%) added if there are subscripts or superscripts in a word, but it is otherwise OK. |
| xheight_penalty_incohérent | 0.25 | Score penalty (0.1 = 10%) added if an xheight is inconsistent. |
| segment_penalty_dict_frequent_word | 1 | Score multiplier for word matches which have good case and are frequent in the given language (lower is better). |
| segment_penalty_dict_case_ok | 1.1 | Score multiplier for word matches that have good case (lower is better). |
| segment_penalty_dict_case_bad | 1.3125 | Default score multiplier for word matches, which may have case issues (lower is better). |
| segment_penalty_dict_nonword | 1.25 | Score multiplier for glyph fragment segmentations which do not match a dictionary word (lower is better). |
| échelle de certitude | 20 | Certainty scaling factor |
| stopper_nondict_certainty_base | -2.5 | Certainty threshold for non-dict words |
| stopper_phase2_certainty_rejection_offset | 1 | Reject certainty offset |
| stopper_certainty_per_char | -0.5 | Certainty to add for each dict char above small word size. |
| stopper_allowable_character_badness | 3 | Max certaintly variation allowed in a word (in sigma) |
| doc_dict_pending_threshold | 0 | Worst certainty for using pending dictionary |
| doc_dict_certainty_threshold | -2.25 | Worst certainty for words that can be inserted into the document dictionary |
| seuil de certitude de tessedit | -2.25 | Good blob limit |
| chop_split_dist_knob | 0.5 | Split length adjustment |
| chop_overlap_knob | 0.9 | Split overlap adjustment |
| chop_center_knob | 0.15 | Split center adjustment |
| chop_sharpness_knob | 0.06 | Split sharpness adjustment |
| chop_width_change_knob | 5 | Width change adjustment |
| chop_ok_split | 100 | OK split limit |
| chop_good_split | 50 | Good split limit |
| segsearch_max_char_wh_ratio | 2 | Rapport largeur/hauteur maximal des caractères |
Pour de meilleurs résultats, il est recommandé d'utiliser les filtres de prétraitement d'image d'IronOCR avant d'appliquer l'OCR. Ces filtres peuvent améliorer considérablement la précision, en particulier lorsque vous travaillez avec des scans de mauvaise qualité ou des documents complexes tels que des tableaux.
Questions Fréquemment Posées
Comment configurer IronTesseract pour l'OCR en C# ?
Pour configurer IronTesseract, créez une instance IronTesseract et définissez des propriétés telles que la langue et la configuration. Vous pouvez spécifier la langue de l'OCR (parmi 125 langues prises en charge), activer la lecture des codes-barres, configurer la sortie PDF avec recherche et définir la liste blanche des caractères. Par exemple : var tesseract = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true } };
Quels sont les formats d'entrée pris en charge par IronTesseract ?
IronTesseract accepte différents formats d'entrée grâce à la classe OcrInput. Vous pouvez traiter des images (PNG, JPG, etc.), des fichiers PDF et des documents scannés. La classe OcrInput fournit des méthodes flexibles pour charger ces différents formats, ce qui facilite l'exécution de l'OCR sur pratiquement n'importe quel document contenant du texte.
Puis-je lire des codes-barres en même temps que du texte à l'aide d'IronTesseract ?
Oui, IronTesseract comprend des fonctionnalités avancées de lecture de codes-barres. Vous pouvez activer la détection des codes-barres en définissant ReadBarCodes = true dans la TesseractConfiguration. Cela vous permet d'extraire à la fois des données textuelles et des codes-barres du même document en une seule opération d'OCR.
Comment créer des PDF consultables à partir de documents numérisés ?
IronTesseract peut convertir des documents et des images numérisés en PDF interrogeables en définissant RenderSearchablePdf = true dans la TesseractConfiguration. Cela permet de créer des fichiers PDF dont le texte peut être sélectionné et faire l'objet d'une recherche, tout en conservant l'aspect du document original.
Quelles sont les langues prises en charge par IronTesseract pour l'OCR ?
IronTesseract prend en charge 125 langues internationales pour la reconnaissance de texte. Vous pouvez spécifier la langue en définissant la propriété Language sur votre instance IronTesseract, comme IronOcr.OcrLanguage.English, Spanish, Chinese, Arabic, et bien d'autres.
Puis-je limiter les caractères reconnus lors de l'OCR ?
Oui, IronTesseract permet d'établir une liste blanche et une liste noire de caractères grâce à la propriété WhiteListCharacters de TesseractConfiguration. Cette fonctionnalité permet d'améliorer la précision lorsque vous connaissez le jeu de caractères attendu, par exemple en limitant la reconnaissance aux seuls caractères alphanumériques.
Comment puis-je effectuer l'OCR sur plusieurs documents simultanément ?
IronTesseract prend en charge les capacités multithreading pour le traitement par lots. Vous pouvez exploiter le traitement parallèle pour l'OCR de plusieurs documents simultanément, ce qui améliore considérablement les performances lorsque vous traitez de gros volumes d'images ou de PDF.
Quelle version de Tesseract IronOCR utilise-t-elle ?
IronOcr utilise une version personnalisée et optimisée de Tesseract 5, connue sous le nom d'Iron Tesseract. Ce moteur amélioré offre une précision et des performances accrues par rapport aux implémentations Tesseract standard, tout en conservant la compatibilité avec les applications .NET.
Comment IronOCR peut-il améliorer la précision des données ?
IronOCR améliore la précision des données grâce à ses algorithmes de reconnaissance avancés et ses fonctionnalités de correction d'image, garantissant que le processus d'extraction de texte est à la fois fiable et précis.
Y a-t-il un essai gratuit disponible pour IronOCR ?
Oui, Iron Software propose un essai gratuit d'IronOCR, permettant aux utilisateurs de tester ses fonctionnalités et capacités avant de prendre une décision d'achat.

