Jak korzystać z Iron Tesseract w języku C
Iron Tesseract w C# jest używany poprzez utworzenie instancji IronTesseract, skonfigurowanie jej z ustawieniami językowymi i OCR, a następnie wywołanie metody Read() na obiekcie OcrInput zawierającym obrazy lub pliki PDF. To przekształca obrazy tekstu w przeszukiwalne pliki PDF za pomocą zoptymalizowanego silnika Tesseract 5.
IronOCR zapewnia intuicyjny interfejs API do korzystania z dostosowanego i zoptymalizowanego Tesseract 5, znanego jako Iron Tesseract. Korzystając z IronOCR i IronTesseract, będziesz mógł przekształcać obrazy tekstów i skanowane dokumenty w tekst i przeszukiwalne pliki PDF. Biblioteka obsługuje 125 języków międzynarodowych i zawiera zaawansowane funkcje, takie jak odczyt BarCode'ów i wizja komputerowa.
Szybki start: Konfiguracja IronTesseract w języku C#
Ten przykład pokazuje, jak skonfigurować IronTesseract z określonymi ustawieniami i wykonać OCR w jednym wierszu kodu.
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
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")); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
Podstawowy przebieg procesu OCR
- Zainstaluj bibliotekę OCR za pomocą NuGet, aby odczytywać obrazy
- Utilize Custom `Tesseract 5` to perform OCR
- Załaduj wybrane dokumenty, takie jak obrazy lub pliki PDF, do przetworzenia
- Wyświetl wyodrębniony tekst w konsoli lub zapisz go do pliku
- Zapisz wynik jako plik PDF z możliwością wyszukiwania
Jak utworzyć instancję IronTesseract?
Zainicjuj obiekt Tesseract za pomocą tego kodu:
: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()
Możesz dostosować działanie IronTesseract, wybierając różne języki, włączając odczytywanie kodów kreskowych oraz białe/czarne listy znaków. IronOCR oferuje szerokie możliwości konfiguracji, które pozwalają precyzyjnie dostosować proces 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
}
Po skonfigurowaniu, możesz używać funkcjonalności Tesseract do odczytywania obiektów OcrInput. Klasa OcrInput zapewnia elastyczne metody ładowania różnych formatów wejściowych:
: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
W złożonych scenariuszach można wykorzystać możliwości wielowątkowości do jednoczesnego przetwarzania wielu dokumentów, co znacznie poprawia wydajność operacji wsadowych.
Czym są zaawansowane zmienne konfiguracyjne Tesseract?
Interfejs IronOcr Tesseract umożliwia pełną kontrolę nad zmiennymi konfiguracyjnymi Tesseracta za pośrednictwem klasy IronOcr.TesseractConfiguration. Te zaawansowane ustawienia pozwalają zoptymalizować wydajność OCR pod kątem konkretnych zastosowań, takich jak poprawianie skanów o niskiej jakości lub odczytywanie określonych typów dokumentów.
Jak korzystać z konfiguracji Tesseract w kodzie?
: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 zapewnia również specjalistyczną konfigurację dla różnych typów dokumentów. Na przykład podczas odczytu paszportów lub przetwarzania czeków MICR można zastosować określone filtry wstępnego przetwarzania oraz wykrywanie regionów w celu poprawy dokładności.
Przykładowa konfiguracja dla dokumentów finansowych:
// 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
Jaka jest pełna lista wszystkich zmiennych konfiguracyjnych Tesseract?
Można to ustawić za pomocą IronTesseract.Configuration.TesseractVariables["key"] = value;. Zmienne konfiguracyjne pozwalają precyzyjnie dostosować działanie OCR w celu uzyskania optymalnych wyników dla konkretnych dokumentów. Szczegółowe wskazówki dotyczące optymalizacji wydajności OCR można znaleźć w naszym przewodniku po konfiguracji szybkiego OCR.
| Zmienna konfiguracyjna Tesseract | Domyślnie | Znaczenie |
|---|---|---|
| classify_num_cp_levels | 3 | Liczba poziomów Class Pruner |
| textord_debug_tabfind | 0 | Znajdowanie zakładki Debug |
| textord_debug_bugs | 0 | Włącz wyświetlanie komunikatów o błędach podczas wyszukiwania zakładek |
| textord_testregion_left | -1 | Lewa krawędź prostokąta raportowania debugowania |
| textord_testregion_top | -1 | Górna krawędź prostokąta raportowania debugowania |
| textord_testregion_right | 2147483647 | Prawy brzeg prostokąta debugowania |
| textord_testregion_bottom | 2147483647 | Dolna krawędź prostokąta debugowania |
| textord_tabfind_show_partitions | 0 | Pokaż granice partycji, czekając, jeśli >1 |
| devanagari_split_debuglevel | 0 | Poziom debugowania dla procesu split shiro-rekha. |
| edges_max_children_per_outline | 10 | Maksymalna liczba elementów podrzędnych w obrębie konturu znaku |
| edges_max_children_layers | 5 | Maksymalna liczba warstw zagnieżdżonych elementów potomnych wewnątrz konturu znaku |
| edges_children_per_grandchild | 10 | Współczynnik ważności dla zarysu fragmentów |
| edges_children_count_limit | 45 | Maksymalna liczba dozwolonych luk w blobie |
| edges_min_nonhole | 12 | Minimalna liczba pikseli dla potencjalnego znaku w polu |
| edges_patharea_ratio | 40 | Max lensq/area for acceptable child outline |
| textord_fp_chop_error | 2 | Maksymalne dopuszczalne wygięcie komórek tnących |
| textord_tabfind_show_images | 0 | Show image blobs |
| textord_skewsmooth_offset | 4 | Dla płynnego działania |
| textord_skewsmooth_offset2 | 1 | Dla płynnego działania |
| textord_test_x | -2147483647 | coord of test pt |
| textord_test_y | -2147483647 | coord of test pt |
| textord_min_blobs_in_row | 4 | Minimalna liczba blobów przed uwzględnieniem gradientu |
| 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 |
| edges_use_new_outline_complexity | 0 | Use the new outline complexity module |
| edges_debug | 0 | turn on debugging for this module |
| edges_children_fix | 0 | Remove boxy parents of char-like children |
| gapmap_debug | 0 | Say which blocks have tables |
| gapmap_use_ends | 0 | Use large space at start and end of rows |
| gapmap_no_isolated_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_old_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 | ||
| words_initial_lower | ||
| words_initial_upper | ||
| 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_underline_offset | ||
| ambigs_debug_level | ||
| classify_debug_level | ||
| classify_norm_method | ||
| matcher_debug_level | ||
| matcher_debug_flags | ||
| classify_learning_debug_level | ||
| matcher_permanent_classes_min | ||
| matcher_min_examples_for_ prototyping | ||
| matcher_sufficient_examples_ for_prototyping | ||
| classify_adapt_proto_threshold | ||
| classify_adapt_feature_threshold | ||
| classify_class_pruner_threshold | ||
| classify_class_pruner_multiplier | ||
| classify_cp_cutoff_strength | ||
| classify_integer_matcher_multiplier | ||
| dawg_debug_level | ||
| hyphen_debug_level | ||
| stopper_smallword_size | ||
| stopper_debug_level | ||
| tessedit_truncate_wordchoice_log | ||
| max_permuter_attempts | ||
| napraw_nieprzycięte_plamy | ||
| chop_debug | ||
| chop_split_length | ||
| chop_same_distance | ||
| chop_min_outline_points | ||
| chop_seam_pile_size | ||
| chop_inside_angle | ||
| 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 | ||
| language_model_debug_level | ||
| language_model_ngram_order | ||
| language_model_viterbi_list_ max_num_prunable | ||
| language_model_viterbi_list_max_size | ||
| language_model_min_compound_length | ||
| wordrec_display_segmentations | ||
| tessedit_pageseg_mode | ||
| tessedit_ocr_engine_mode | ||
| pageseg_devanagari_split_strategy | ||
| ocr_devanagari_split_strategy | ||
| bidi_debug | ||
| applybox_debug | ||
| applybox_page | ||
| tessedit_bigram_debug | ||
| debug_noise_removal | ||
| noise_maxperblob | ||
| noise_maxperword | ||
| debug_x_ht_level | ||
| quality_min_initial_alphas_reqd | ||
| tessedit_tess_adaption_mode | ||
| multilang_debug_level | ||
| paragraph_debug_level | ||
| tessedit_preserve_min_wd_len | ||
| crunch_rating_max | ||
| crunch_pot_indicators | ||
| crunch_leave_lc_strings | ||
| crunch_leave_uc_strings | ||
| crunch_long_repetitions | ||
| crunch_debug | ||
| fixsp_non_noise_limit | ||
| fixsp_done_mode | ||
| debug_fix_space_level | ||
| x_ht_acceptance_tolerance | ||
| x_ht_min_change | ||
| superscript_debug | ||
| jpg_quality | ||
| user_defined_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_parallelize | ||
| lstm_choice_mode | ||
| lstm_choice_iterations | ||
| tosp_debug_level | ||
| tosp_enough_space_samples_for_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 | ||
| use_ambigs_for_adaption | ||
| prioritize_division | ||
| classify_enable_learning | ||
| tess_cn_matching | ||
| tess_bn_matching | ||
| classify_enable_adaptive_matcher | ||
| classify_use_pre_adapted_templates | ||
| classify_save_adapted_templates | ||
| classify_enable_adaptive_debugger | ||
| classify_nonlinear_norm | ||
| disable_character_fragments | ||
| classify_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 | ||
| use_only_first_uft8_step | ||
| stopper_no_acceptable_choices | ||
| segment_nonalphabetic_script | ||
| save_doc_words | ||
| merge_fragments_in_matrix | ||
| wordrec_enable_assoc | ||
| force_word_assoc | ||
| 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 | ||
| language_model_use_sigmoidal_certainty | ||
| tessedit_resegment_from_boxes | ||
| tessedit_resegment_from_line_boxes | ||
| tessedit_train_from_boxes | ||
| tessedit_make_boxes_from_boxes | ||
| tessedit_train_line_recognizer | ||
| tessedit_dump_pageseg_images | ||
| tessedit_do_invert | ||
| tessedit_ambigs_training | ||
| tessedit_adaption_debug | ||
| applybox_learn_chars_and_char_frags_mode | ||
| applybox_learn_ngrams_mode | ||
| tessedit_display_outwords | ||
| tessedit_dump_choices | ||
| tessedit_timing_debug | ||
| tessedit_fix_fuzzy_spaces | ||
| tessedit_unrej_any_wd | ||
| tessedit_fix_hyphens | ||
| tessedit_enable_doc_dict | ||
| tessedit_debug_fonts | ||
| tessedit_debug_block_rejection | ||
| tessedit_enable_bigram_correction | ||
| tessedit_enable_dict_correction | ||
| enable_noise_removal | ||
| tessedit_minimal_rej_pass1 | ||
| tessedit_test_adaption | ||
| test_pt | ||
| tekst_oparty_na_akapicie | ||
| lstm_use_matrix | ||
| tessedit_good_quality_unrej | ||
| tessedit_use_reject_spaces | ||
| 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_use_dict_word | ||
| rej_1Il_trust_permuter_type | ||
| rej_use_tess_accepted | ||
| rej_use_tess_blanks | ||
| rej_use_good_perm | ||
| rej_use_sensible_wd | ||
| rej_alphas_in_number_perm | ||
| tessedit_create_boxfile | ||
| tessedit_write_images | ||
| interactive_display_mode | ||
| tessedit_override_permuter | ||
| tessedit_use_primary_params_model | ||
| textord_tabfind_show_vlines | ||
| textord_use_cjk_fp_model | ||
| poly_allow_detailed_fx | ||
| tessedit_init_config_only | ||
| textord_equation_detect | ||
| textord_tabfind_vertical_text | ||
| textord_tabfind_force_vertical_text | ||
| zachowaj_spacje_między_słowami | ||
| 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_use_pre_chopping | ||
| tosp_old_to_bug_fix | ||
| tosp_block_use_cert_spaces | ||
| tosp_row_use_cert_spaces | ||
| tosp_narrow_blobs_not_cert | ||
| tosp_row_use_cert_spaces1 | ||
| tosp_recovery_isolated_row_stats | ||
| tosp_only_small_gaps_for_kern | ||
| tosp_all_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 | ||
| user_words_file | ||
| user_words_suffix | ||
| user_patterns_file | ||
| user_patterns_suffix | ||
| plik_słów_niejednoznacznych | ||
| word_to_debug | ||
| 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)'`" | ||
| outlines_odd | %| | Niestandardowa liczba punktów |
| outlines_2ij!?%":; | Niestandardowa liczba punktów | |
| numeric_punctuation | ., | Punct. chs expected WITHIN numbers |
| unrecognised_char | | | Output char for unidentified blobs |
| ok_powtórzone_znaki_niealfanumeryczne_słowa | -?*= | Allow NN to unrej |
| conflict_set_I_l_1 | Il1 [] | Il1 conflict set |
| typ_pliku | .tif | Filename extension |
| tessedit_load_sublangs | ||
| page_separator | ||
| classify_char_norm_range | ||
| classify_max_rating_ratio | ||
| classify_max_certainty_margin | ||
| matcher_good_threshold | ||
| matcher_reliable_adaptive_result | ||
| matcher_perfect_threshold | ||
| matcher_bad_match_pad | ||
| matcher_rating_margin | ||
| matcher_avg_noise_size | ||
| matcher_clustering_max_angle_delta | ||
| classify_misfit_junk_penalty | ||
| skala_ocen | ||
| certainty_scale | ||
| tessedit_class_miss_scale | ||
| classify_adapted_pruning_factor | ||
| classify_adapted_pruning_threshold | ||
| classify_character_fragments_ garbage_certainty_threshold | ||
| speckle_large_max_size | ||
| speckle_rating_penalty | ||
| 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 | ||
| certainty_scale | ||
| 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_certainty_threshold | ||
| 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 |
Aby uzyskać najlepsze wyniki, przed zastosowaniem OCR zaleca się użycie filtrów wstępnego przetwarzania obrazu IronOCR. Filtry te mogą znacznie poprawić dokładność, zwłaszcza podczas pracy ze skanami niskiej jakości lub złożonymi dokumentami, takimi jak tabele.
Często Zadawane Pytania
Jak skonfigurowac IronTesseract do OCR w C#?
Aby skonfigurowac IronTesseract, stworz instancje IronTesseract i ustaw wlasciwosci takie jak Language i Configuration. Mozna okreslic jezyk OCR (z 125 wspieranych jezykow), wlaczyc odczyt kodow kreskowych, skonfigurowac generowanie przeszukiwalnych PDF i ustawic na biala liste znaki. Przykład: var tesseract = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true } };
Jakie formaty wejscia wspiera IronTesseract?
IronTesseract akceptuje rozne formaty wejscia za pomoca klasy OcrInput. Mozna przetwarzac obrazy (PNG, JPG, itd.), pliki PDF i zeskanowane dokumenty. Klasa OcrInput oferuje elastyczne metody ladowania tych roznych formatow, co pozwala na latwe wykonanie OCR niemal na kazdym dokumencie zawierajacym tekst.
Czy moge odczytywac kody kreskowe wraz z tekstem uzywajac IronTesseract?
Tak, IronTesseract zawiera zaawansowane funkcje odczytu kodow kreskowych. Mozna wlaczyc wykrywanie kodow kreskowych, ustawiajac ReadBarCodes = true w TesseractConfiguration. To pozwala na wyodrebnienie zarówno tekstu, jak i danych z kodów kreskowych z tego samego dokumentu podczas jednej operacji OCR.
Jak moge tworzyc przeszukiwalne PDF z zeskanowanych dokumentów?
IronTesseract moze przeksztalcac zeskanowane dokumenty i obrazy w przeszukiwalne PDF, ustawiajac RenderSearchablePdf = true w TesseractConfiguration. Powstaja w ten sposob pliki PDF, w ktorych tekst jest wybieralny i przeszukiwalny, zachowujac przy tym wyglad oryginalnego dokumentu.
Jakie jezyki wspiera IronTesseract do OCR?
IronTesseract wspiera 125 miedzynarodowych jezyków do rozpoznawania tekstu. Mozna okreslic jezyk, ustawiajac wlasciwosc Language na instancji IronTesseract, np. IronOcr.OcrLanguage.English, Spanish, Chinese, Arabic i wiele innych.
Czy moge ograniczyc, jakie znaki sa rozpoznawane podczas OCR?
Tak, IronTesseract pozwala na dodawanie znakow do bialej i czarnej listy za pomoca wlasciwosci WhiteListCharacters w TesseractConfiguration. Ta funkcja pomaga poprawic dokladnosc, gdy wiadomo, jaki znaki sie spodziewane, np. ograniczajac rozpoznawanie tylko do znakow alfanumerycznych.
Jak wykonac OCR na wielu dokumentach jednoczesnie?
IronTesseract wspiera wielowatkowe przetwarzanie wsadowe. Mozna skorzystac z równoleglego przetwarzania, aby przeprowadzic OCR na wielu dokumentach jednoczesnie, znacznie poprawiajac wydajnosc przy pracy z duza iloscia obrazow lub plikow PDF.
Z jakiej wersji Tesseract korzysta IronOCR?
IronOCR korzysta z dostosowanej i zoptymalizowanej wersji Tesseract 5, znanej jako Iron Tesseract. Ten ulepszony silnik oferuje poprawiona dokladnosc i wydajnosc w porównaniu ze standardowymi implementacjami Tesseract przy zachowaniu zgodnosci z aplikacjami .NET.

