Iron Tesseract in C# – OCR Software für Texterkennung und PDF Text extrahieren
Iron Tesseract in C# wird verwendet, indem eine IronTesseract Instanz erstellt, diese mit Sprach- und OCR-Einstellungen konfiguriert und anschließend die Read() Methode auf einem OcrInput Objekt aufgerufen wird. Diese OCR Software konvertiert Bild zu Text und extrahiert PDF Text mithilfe der optimierten Engine von Tesseract 5.
IronOCR bietet eine intuitive API zur Nutzung des angepassten und optimierten Tesseract 5, bekannt als Iron Tesseract. Mit IronOCR und IronTesseract können Sie Texterkennung durchführen, Bild zu Text umwandeln und gescannte Dokumente in durchsuchbare PDFs konvertieren. Die Bibliothek unterstützt 125 internationale Sprachen und umfasst erweiterte Funktionen wie Barcode-Lesen und Computer Vision.
Schnellstart: IronTesseract-Konfiguration in C# einrichten
Dieses Beispiel zeigt, wie man IronTesseract mit spezifischen Einstellungen konfiguriert und OCR in einer einzigen Codezeile durchführt.
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
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")); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Grundlegender OCR-Workflow
- Installieren Sie die OCR-Bibliothek mit NuGet, um Bilder zu lesen.
- Utilize Custom `Tesseract 5` to perform OCR
- Laden Sie die gewünschten Dokumente, wie Bilder oder PDF-Dateien, zur Verarbeitung
- Geben Sie den extrahierten Text auf der Konsole oder in einer Datei aus
- Speichern Sie das Ergebnis als durchsuchbare PDF
Wie erstelle ich eine IronTesseract-Instanz?
Initialisieren Sie ein Tesseract-Objekt mit diesem 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()
Sie können das Verhalten von IronTesseract anpassen, indem Sie verschiedene Sprachen auswählen, das Lesen von Barcodes aktivieren und Zeichen auf die Whitelist/Blacklist setzen. IronOCR bietet umfassende Konfigurationsoptionen zur Feinabstimmung Ihres OCR-Prozesses:
: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
}
Nach der Konfiguration können Sie die Funktionalität von Tesseract nutzen, um OcrInput Objekte zu lesen. Die OcrInput-Klasse bietet flexible Methoden zum Laden verschiedener Eingabeformate:
: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
Für komplexe Szenarien können Sie die Multithreading-Funktionen nutzen, um mehrere Dokumente gleichzeitig zu verarbeiten, was die Leistung bei Stapelverarbeitungsvorgängen erheblich verbessert.
Was sind die erweiterten Tesseract-Konfigurationsvariablen?
Die IronOCR Tesseract-Schnittstelle ermöglicht die volle Kontrolle über die Tesseract-Konfigurationsvariablen über die IronOcr.TesseractConfiguration Klasse. Mit diesen erweiterten Einstellungen können Sie die OCR-Leistung für bestimmte Anwendungsfälle optimieren, z. B. Fixieren von Scans mit niedriger Qualität oder Lesen bestimmter Dokumenttypen.
Wie verwende ich die Tesseract-Konfiguration im 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 bietet auch eine spezielle Konfiguration für verschiedene Dokumenttypen. So können Sie beispielsweise beim Lesen von Reisepässen oder bei der Verarbeitung von MICR-Schecks spezifische Vorverarbeitungsfilter und Bereichserkennung anwenden, um die Genauigkeit zu verbessern.
Beispielkonfiguration für Finanzdokumente:
// 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);
// 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
Was ist die vollständige Liste aller Tesseract-Konfigurationsvariablen?
Diese können mit IronTesseract.Configuration.TesseractVariables["key"] = value; eingestellt werden. Die Konfigurationsvariablen ermöglichen eine Feinabstimmung des OCR-Verhaltens für optimale Ergebnisse bei Ihren spezifischen Dokumenten. Eine ausführliche Anleitung zur Optimierung der OCR-Leistung finden Sie in unserem fast OCR configuration guide.
| Tesseract-Konfigurationsvariable | Standard | Bedeutung |
|---|---|---|
| Anzahl der CP-Ebenen klassifizieren | 3 | Anzahl der Klassenbeschneidungsebenen |
| textord_debug_tabfind | 0 | Suche auf der Registerkarte "Debuggen" |
| textord_debug_bugs | 0 | Aktivieren Sie die Ausgabe von Fehlern in der Tab-Suche. |
| textord_testregion_left | -1 | Linke Kante des Rechtecks für Debug-Berichte |
| textord_testregion_top | -1 | Oberkante des Rechtecks für Debug-Berichte |
| textord_testregion_right | 2147483647 | Rechter Rand des Debug-Rechtecks |
| textord_testregion_bottom | 2147483647 | Unterkante des Debug-Rechtecks |
| textord_tabfind_show_partitions | 0 | Partitionsgrenzen anzeigen, warten, falls >1 |
| Devanagari-Split-Debug-Level | 0 | Debug-Level für den geteilten Shiro-Rekha-Prozess. |
| edges_max_children_per_outline | 10 | Maximale Anzahl von Kindern innerhalb einer Zeichenkontur |
| edges_max_children_layers | 5 | Maximale Anzahl verschachtelter Kindebenen innerhalb einer Charakterkontur |
| edges_children_per_grandchild | 10 | Wichtigkeitsverhältnis für Umrisse |
| edges_children_count_limit | 45 | Maximale Anzahl an Löchern im Blob |
| edges_min_nonhole | 12 | Minimale Pixelanzahl für potenzielle Charaktere im Feld |
| Kantenpfadflächenverhältnis | 40 | Max lensq/area for acceptable child outline |
| textord_fp_chop_error | 2 | Maximal zulässige Biegung von Chop-Zellen |
| textord_tabfind_show_images | 0 | Show image blobs |
| textord_skewsmooth_offset | 4 | Für den Glättungsfaktor |
| textord_skewsmooth_offset2 | 1 | Für den Glättungsfaktor |
| textord_test_x | -2147483647 | Koordinator des Testpunktes |
| textord_test_y | -2147483647 | Koordinator des Testpunktes |
| textword_min_blobs_in_row | 4 | Minimale Anzahl an Blobs vor der Gradientenzählung |
| textord_spline_minblobs | 8 | Min blobs in each spline segment |
| textord_spline_medianwin | 6 | Size of window for spline segmentation |
| textord_max_blob_overlaps | 4 | Max number of blobs a big blob can overlap |
| textord_min_xheight | 10 | Min credible pixel xheight |
| textord_lms_line_trials | 12 | Number of linew fits to do |
| oldbl_holed_losscount | 10 | Max lost before fallback line used |
| pitsync_linear_version | 6 | Use new fast algorithm |
| pitsync_fake_depth | 1 | Max advance fake generation |
| textord_tabfind_show_strokewidths | 0 | Show stroke widths |
| textord_dotmatrix_gap | 3 | Max pixel gap for broken pixed pitch |
| textord_debug_block | 0 | Block to do debug on |
| textord_pitch_range | 2 | Max range test on pitch |
| textord_words_veto_power | 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_printable | 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_show_columns | 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 |
| kanten_benutzen_neue_außenlinie_komplexität | 0 | Use the new outline complexity module |
| edges_debug | 0 | turn on debugging for this module |
| kanten_Kinder_fix | 0 | Remove boxy parents of char-like children |
| gapmap_debug | 0 | Say which blocks have tables |
| gapmap_nutzen_enden | 0 | Use large space at start and end of rows |
| gapmap_kein_isoliertes_quanta | 0 | Ensure gaps not less than 2quanta wide |
| textord_heavy_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_show_final_rows | 0 | Display rows after final fitting |
| textord_show_final_blobs | Display blob bounds after pre-ass | |
| textord_test_landscape | 0 | Tests refer to land/port |
| textord_parallel_baselines | 1 | Force parallel baselines |
| textord_straight_baselines | 0 | Force straight baselines |
| textord_alt_baselines | 1 | |
| textord_old_xheight | 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 |
| textord_interpolating_skew | 1 | Interpolate across gaps |
| textord_new_initial_xheight | 1 | Use test xheight mechanism |
| textord_debug_blob | 0 | Print test blob information |
| textord_really_old_xheight | 0 | Use original wiseowl xheight |
| textord_oldbl_debug | 0 | Debug old baseline generation |
| textord_debug_baselines | 0 | Debug baseline generation |
| textord_oldbl_paradef | 1 | Use para default mechanism |
| textord_oldbl_split_splines | 1 | Split stepped splines |
| textord_oldbl_merge_parts | 1 | Merge suspect partitions |
| oldbl_corrfix | 1 | Improve correlation of heights |
| oldbl_xhfix | 0 | Fix bug in modes threshold for xheights |
| textord_ocropus_mode | 0 | Make baselines for ocropus |
| textord_tabfind_only_strokewidths | 0 | Only run stroke widths |
| textord_tabfind_show_initialtabs | 0 | Show tab candidates |
| textord_tabfind_show_finaltabs | 0 | Show tab vectors |
| textord_show_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 | ||
| textord_debug_pitch_test | ||
| textord_disable_pitch_test | ||
| textord_fast_pitch_test | ||
| textord_debug_pitch_metric | ||
| textord_show_row_cuts | ||
| textord_show_page_cuts | ||
| textord_pitch_cheat | ||
| textord_blockndoc_fixed | ||
| textord_show_initial_words | ||
| textord_show_new_words | ||
| textord_show_fixed_words | ||
| textord_blocksall_fixed | ||
| textord_blocksall_prop | ||
| textord_blocksall_testing | ||
| textord_test_mode | ||
| textord_pitch_rowsimilarity | ||
| Wörter_Anfangsbuchstaben_kleingeschrieben | ||
| Wörter_Anfangsbuchstaben_groß | ||
| words_default_prop_nonspace | ||
| words_default_fixed_space | ||
| words_default_fixed_limit | ||
| textord_words_definite_spread | ||
| textord_spacesize_ratiofp | ||
| textord_spacesize_ratioprop | ||
| textord_fpiqr_ratio | ||
| textord_max_pitch_iqr | ||
| textord_fp_min_width | ||
| textord_unterline_offset | ||
| ambigs_debug_level | ||
| Debug-Level klassifizieren | ||
| classify_norm_method | ||
| matcher_debug_level | ||
| matcher_debug_flags | ||
| Lern-Debug-Level klassifizieren | ||
| matcher_permanent_classes_min | ||
| matcher_min_examples_for_prototyping | ||
| matcher_sufficient_examples_ for_prototyping | ||
| classify_adapt_proto_threshold | ||
| classify_adapt_feature_threshold | ||
| Schwellenwert für den Klassenbereinigungsmechanismus | ||
| Multiplikator für Klassenbeschneidung | ||
| classify_cp_cutoff_strength | ||
| classify_integer_matcher_multiplier | ||
| dawg_debug_level | ||
| hyphen_debug_level | ||
| Stopper_kleineWortgröße | ||
| Stopper-Debug-Level | ||
| tessedit_truncate_wordchoice_log | ||
| max_permuter_attempts | ||
| repair_unchopped_blobs | ||
| chop_debug | ||
| chop_split_length | ||
| chop_same_distance | ||
| chop_min_outline_points | ||
| Schnittnaht-Pilzgröße | ||
| Innenwinkel | ||
| chop_min_outline_area | ||
| chop_centered_maxwidth | ||
| chop_x_y_weight | ||
| wordrec_debug_level | ||
| wordrec_max_join_chunks | ||
| segsearch_debug_level | ||
| segsearch_max_pain_points | ||
| segsearch_max_futile_classifications | ||
| sprache_modell_debug_level | ||
| sprache_modell_ngramm_ordnung | ||
| language_model_viterbi_list_ max_num_prunable | ||
| sprache_modell_viterbi_liste_max_grösse | ||
| minimale Verbindungslänge des Sprachmodells | ||
| wordrec_display_segmentations | ||
| tessedit_pageseg_mode | ||
| tessedit_ocr_engine_mode | ||
| seiteneg_devanagari_split_strategy | ||
| ocr_devanagari_split_strategy | ||
| bidi_debug | ||
| applybox_debug | ||
| applybox_page | ||
| tessedit_bigram_debug | ||
| Debug-Rauschentfernung | ||
| noise_maxperblob | ||
| noise_maxperword | ||
| debug_x_ht_level | ||
| qualität_min_initial_alphas_reqd | ||
| tessedit_tess_adaption_mode | ||
| multilang_debug_level | ||
| absatz_debug_level | ||
| tessedit_preserve_min_wd_len | ||
| crunch_rating_max | ||
| crunch_pot_indikatoren | ||
| crunch_leave_lc_strings | ||
| crunch_leave_uc_strings | ||
| lange Wiederholungen | ||
| crunch_debug | ||
| fixsp_geraeuschfrei_limit | ||
| fixsp_done_mode | ||
| debug_fix_space_level | ||
| x_ht_akzeptanz_toleranz | ||
| x_ht_min_change | ||
| superscript_debug | ||
| jpg-Qualität | ||
| benutzerdefinierte DPI | ||
| min_characters_to_try | ||
| suspect_level | ||
| suspect_short_words | ||
| tessedit_reject_mode | ||
| tessedit_image_border | ||
| min_sane_x_ht_pixels | ||
| tessedit_page_number | ||
| tessedit_parallelisieren | ||
| lstm_choice_mode | ||
| lstm_choice_iterations | ||
| tosp_debug_level | ||
| tosp_genug_space_samples_für_median | ||
| tosp_redo_kern_limit | ||
| tosp_few_samples | ||
| tosp_short_row | ||
| tosp_sanity_method | ||
| textord_max_noise_size | ||
| textord_baseline_debug | ||
| textord_noise_sizefraction | ||
| textord_noise_translimit | ||
| textord_noise_sncount | ||
| Verwendung von Ambiguitäten zur Anpassung | ||
| priorisieren_Abteilung | ||
| Klassifizierung aktivieren Lernen | ||
| tess_cn_matching | ||
| tess_bn_matching | ||
| klassifizieren_adaptiven_Abgleich aktivieren | ||
| classify_use_pre_adapted_templates | ||
| klassifizieren_speichern_angepasste_Vorlagen | ||
| klassifizieren_adaptiven_Debugger aktivieren | ||
| nichtlineare Norm klassifizieren | ||
| disable_character_fragments | ||
| klassifizieren_debug_character_fragments | ||
| matcher_debug_separate_windows | ||
| classify_bln_numeric_mode | ||
| load_system_dawg | ||
| load_freq_dawg | ||
| load_unambig_dawg | ||
| load_punc_dawg | ||
| load_number_dawg | ||
| load_bigram_dawg | ||
| benutze_nur_erste_uft8_schritt | ||
| Stopper – keine akzeptablen Wahlmöglichkeiten | ||
| segment_nonalphabetisch_script | ||
| save_doc_words | ||
| fragmente_in_Matrix_zusammenführen | ||
| wordrec_enable_assoc | ||
| erzwingt_Wortassoziation | ||
| chop_enable | ||
| chop_vertical_creep | ||
| chop_new_seam_pile | ||
| assume_fixed_pitch_char_segment | ||
| wordrec_skip_no_truth_words | ||
| wordrec_debug_blamer | ||
| wordrec_run_blamer | ||
| save_alt_choices | ||
| language_model_ngram_on | ||
| language_model_ngram_use_
only_first_uft8_step | ||
| language_model_ngram_space_ delimited_language | ||
| sprachmodell_nutze_sigmoide_gewissheit | ||
| tessedit_resegment_aus_boxen | ||
| tessedit_resegment_aus_line_boxes | ||
| tessedit_train_from_boxes | ||
| tessedit_boxen_aus_boxen_herstellen | ||
| tessedit_train_line_recognizer | ||
| tessedit_dump_pageseg_images | ||
| tessedit_do_invert | ||
| tessedit_ambigs_schulung | ||
| tessedit_adaption_debug | ||
| applybox_learn_chars_and_char_frags_mode | ||
| applybox_learn_ngrams_mode | ||
| tessedit_anzeigen_auswuerfe | ||
| tessedit_dump_choices | ||
| tessedit_timing_debug | ||
| tessedit_fix_fuzzy_spaces | ||
| tessedit_unrej_any_wd | ||
| tessedit_fix_hyphens | ||
| tessedit_aktivieren_doc_dict | ||
| tessedit_debug_fonts | ||
| tessedit_debug_block_rejection | ||
| tessedit_enable_bigram_correction | ||
| tessedit_enable_dict_correction | ||
| Rauschunterdrückung aktivieren | ||
| tessedit_minimal_rej_pass1 | ||
| tessedit_test_adaptation | ||
| test_pt | ||
| absatztextbasiert | ||
| lstm_gebrauch_matrix | ||
| tessedit_gute_Qualität_unrej | ||
| tessedit_verwendet_abgewiesene_Räume | ||
| tessedit_preserve_blk_rej_perfect_wds | ||
| tessedit_preserve_row_rej_perfect_wds | ||
| tessedit_dont_blkrej_good_wds | ||
| tessedit_dont_rowrej_good_wds | ||
| tessedit_row_rej_good_docs | ||
| tessedit_reject_bad_qual_wds | ||
| tessedit_debug_doc_rejection | ||
| tessedit_debug_quality_metrics | ||
| bland_unrej | ||
| unlv_tilde_crunching | ||
| hocr_font_info | ||
| hocr_char_boxes | ||
| crunch_early_merge_tess_fails | ||
| crunch_early_convert_bad_unlv_chs | ||
| crunch_terrible_garbage | ||
| crunch_leave_ok_strings | ||
| crunch_accept_ok | ||
| crunch_leave_accept_strings | ||
| crunch_include_numerals | ||
| tessedit_prefer_joined_punct | ||
| tessedit_write_block_separators | ||
| tessedit_write_rep_codes | ||
| tessedit_write_unlv | ||
| tessedit_create_txt | ||
| tessedit_create_hocr | ||
| tessedit_create_alto | ||
| tessedit_create_lstmbox | ||
| tessedit_create_tsv | ||
| tessedit_create_wordstrbox | ||
| tessedit_create_pdf | ||
| textonly_pdf | ||
| suspect_constrain_1Il | ||
| tessedit_minimal_rejection | ||
| tessedit_zero_rejection | ||
| tessedit_word_for_word | ||
| tessedit_zero_kelvin_rejection | ||
| tessedit_rejection_debug | ||
| tessedit_flip_0O | ||
| rej_trust_doc_dawg | ||
| rej_1Il_verwendung_dict_word | ||
| rej_1Il_trust_permuter_type | ||
| rej_use_tess_accepted | ||
| rej_use_tess_blanks | ||
| rej_use_good_perm | ||
| rej_benutzen_sensibel_wd | ||
| rej_alphas_in_number_perm | ||
| tessedit_create_boxfile | ||
| tessedit_write_images | ||
| interaktiver Anzeigemodus | ||
| tessedit_überschreibender_permuter | ||
| tessedit_verwendet_primäre_Parameter_Modell | ||
| textord_tabfind_show_vlines | ||
| textord_verwendung_cjk_fp_model | ||
| poly_allow_detailed_fx | ||
| tessedit_init_config_only | ||
| textord_equation_detect | ||
| textord_tabfind_vertical_text | ||
| textord_tabfind_force_vertical_text | ||
| Zwischenwortabstände beibehalten | ||
| pageseg_apply_music_mask | ||
| textord_single_height_mode | ||
| tosp_old_to_method | ||
| tosp_old_to_constrain_sp_kn | ||
| tosp_only_use_prop_rows | ||
| tosp_force_wordbreak_on_punct | ||
| tosp_nutzen_vor_hacken | ||
| tosp_alt_zu_bug_fix | ||
| tosp_block_use_cert_spaces | ||
| tosp_row_use_cert_spaces | ||
| tosp_narrow_blobs_not_cert | ||
| tosp_row_use_cert_spaces1 | ||
| tosp_wiederherstellung_isolierte_reihen_statistiken | ||
| tosp_nur_kleine_lücken_für_kern | ||
| tosp_alle_flips_fuzzy | ||
| tosp_fuzzy_limit_all | ||
| textord_no_rejects | ||
| textord_show_blobs | ||
| textord_show_boxes | ||
| textord_noise_rejwords | ||
| textord_noise_rejrows | ||
| textord_noise_debug | ||
| classify_learn_debug_str | ||
| Benutzerwortdatei | ||
| Benutzerwortsuffix | ||
| Benutzermusterdatei | ||
| Benutzermustersuffix | ||
| Ausgabedatei für Mehrdeutigkeiten | ||
| Wort zum Debuggen | ||
| tessedit_char_blacklist | ||
| tessedit_char_whitelist | ||
| tessedit_char_unblacklist | ||
| tessedit_write_params_to_file | ||
| applybox_exposure_pattern | ||
| chs_leading_punct('`" | ||
| chs_trailing_punct1 | ||
| chs_trailing_punct2)'`" | ||
| Umrisse_ungerade | %| | Nicht standardmäßige Anzahl von Umrissen |
| outlines_2ij!?%":; | Nicht standardmäßige Anzahl von Umrissen | |
| numerische_Zeichensetzung | ., | Punct. chs expected WITHIN numbers |
| unerkanntes_zeichen | | | Output char for unidentified blobs |
| ok_repeated_ch_non_alphanum_wds | -?*= | Allow NN to unrej |
| Konfliktgruppe_I_l_1 | Il1 [] | Il1 conflict set |
| Dateityp | .tif | Filename extension |
| tessedit_load_sublangs | ||
| Seitentrennzeichen | ||
| Zeichennormbereich klassifizieren | ||
| klassifizieren_maximales_Bewertungsverhältnis | ||
| classify_max_certainty_margin | ||
| matcher_good_threshold | ||
| matcher_zuverlässiges_adaptives_ergebnis | ||
| matcher_perfect_threshold | ||
| matcher_bad_match_pad | ||
| Matcher-Bewertungsmarge | ||
| matcher_avg_noise_size | ||
| matcher_clustering_max_angle_delta | ||
| Strafe für unpassende Schrottteile | ||
| Bewertungsskala | ||
| Gewissheitsskala | ||
| tessedit_class_miss_scale | ||
| klassifizieren_angepasster_Pruning-Faktor | ||
| klassifizieren_angepasster_Beschneidungsschwellenwert | ||
| classify_character_fragments_ garbage_certainty_threshold | ||
| speckle_large_max_size | ||
| Speckle-Bewertungsstrafe | ||
| xheight_penalty_subscripts | ||
| xheight_penalty_inconsistent | ||
| segment_penalty_dict_frequent_word | ||
| segment_penalty_dict_case_ok | ||
| segment_penalty_dict_case_bad | ||
| segment_penalty_dict_nonword | ||
| Gewissheitsskala | ||
| stopper_nondict_certainty_base | ||
| stopper_phase2_certainty_rejection_offset | ||
| stopper_certainty_per_char | ||
| stopper_allowable_character_badness | ||
| doc_dict_pending_threshold | ||
| doc_dict_certainty_threshold | ||
| tessedit_gewissheit_schwelle | ||
| chop_split_dist_knob | ||
| chop_overlap_knob | ||
| chop_center_knob | ||
| chop_sharpness_knob | ||
| chop_width_change_knob | ||
| chop_ok_split | ||
| chop_good_split | ||
| segsearch_max_char_wh_ratio |
Um optimale Ergebnisse zu erzielen, wird empfohlen, vor der Anwendung von OCR die Bildvorverarbeitungsfilter von IronOCR zu verwenden. Diese Filter können die Genauigkeit erheblich verbessern, insbesondere bei der Arbeit mit Scans niedriger Qualität oder komplexen Dokumenten wie Tabellen.
Häufig gestellte Fragen
Wie konfiguriere ich IronTesseract für OCR in C#?
Um IronTesseract zu konfigurieren, erstellen Sie eine IronTesseract-Instanz und legen Eigenschaften wie Sprache und Konfiguration fest. Sie können die OCR-Sprache (aus 125 unterstützten Sprachen) angeben, das Lesen von Barcodes aktivieren, die durchsuchbare PDF-Ausgabe konfigurieren und eine Whitelist für Zeichen festlegen. Zum Beispiel: var tesseract = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true } };
Welche Eingabeformate werden von IronTesseract unterstützt?
IronTesseract akzeptiert verschiedene Eingabeformate über die Klasse OcrInput. Sie können Bilder (PNG, JPG, etc.), PDF-Dateien und gescannte Dokumente verarbeiten. Die Klasse OcrInput bietet flexible Methoden zum Laden dieser verschiedenen Formate, so dass die OCR für praktisch jedes Dokument, das Text enthält, problemlos durchgeführt werden kann.
Kann ich mit IronTesseract BarCodes zusammen mit Text lesen?
Ja, IronTesseract verfügt über erweiterte Funktionen zum Lesen von Barcodes. Sie können die Barcode-Erkennung aktivieren, indem Sie ReadBarCodes = true in der TesseractConfiguration einstellen. Damit können Sie in einem einzigen OCR-Vorgang sowohl Text- als auch Barcodedaten aus demselben Dokument extrahieren.
Wie erstelle ich durchsuchbare PDFs aus gescannten Dokumenten?
IronTesseract kann gescannte Dokumente und Bilder in durchsuchbare PDFs umwandeln, indem in der TesseractConfiguration RenderSearchablePdf = true gesetzt wird. Dadurch werden PDF-Dateien erzeugt, in denen der Text auswählbar und durchsuchbar ist, während das Aussehen des Originaldokuments erhalten bleibt.
Welche Sprachen werden von IronTesseract für OCR unterstützt?
IronTesseract unterstützt 125 internationale Sprachen für die Texterkennung. Sie können die Sprache festlegen, indem Sie die Spracheigenschaft Ihrer IronTesseract-Instanz einstellen, z. B. IronOcr.OcrLanguage.English, Spanisch, Chinesisch, Arabisch und viele andere.
Kann ich einschränken, welche Zeichen bei der OCR erkannt werden?
Ja, IronTesseract erlaubt das Whitelisting und Blacklisting von Zeichen über die Eigenschaft WhiteListCharacters in TesseractConfiguration. Diese Funktion trägt zur Verbesserung der Genauigkeit bei, wenn Sie den erwarteten Zeichensatz kennen, z. B. wenn Sie die Erkennung auf alphanumerische Zeichen beschränken.
Wie führe ich OCR für mehrere Dokumente gleichzeitig durch?
IronTesseract unterstützt Multithreading-Funktionen für die Stapelverarbeitung. Sie können die parallele Verarbeitung nutzen, um mehrere Dokumente gleichzeitig zu OCR zu verarbeiten, was die Leistung bei der Verarbeitung großer Mengen von Bildern oder PDFs erheblich verbessert.
Welche Version von Tesseract wird von IronOCR verwendet?
IronOCR verwendet eine angepasste und optimierte Version von Tesseract 5, bekannt als Iron Tesseract. Diese optimierte Engine bietet im Vergleich zu Standard-Tesseract-Implementierungen eine verbesserte Genauigkeit und Leistung, wobei die Kompatibilität mit .NET-Anwendungen erhalten bleibt.

