如何在C#中使用Iron Tesseract
在C#中使用Iron Tesseract是透過建立一個Read()方法。 這將使用Tesseract 5的優化引擎將文字圖像轉換為可搜尋的PDF。
IronOCR提供了一個直觀的API來使用客製化和優化的Tesseract 5,稱之為Iron Tesseract。 通過使用IronOCR和IronTesseract,您將能夠將文字和掃描的文件圖像轉換為文字和可搜尋的PDF。 該程式庫支援125種國際語言,並包括像條碼閱讀和電腦視覺這樣的先進功能。
快速開始:設置IronTesseract配置在C#中
此範例展示如何使用特定設置配置IronTesseract並在一行程式碼中執行OCR。
-
使用NuGet套件管理器安裝https://www.nuget.org/packages/IronOcr
-
複製並運行這段程式碼片段。
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")); -
部署以在您的實時環境中測試
今天就開始在您的專案中使用IronOCR,透過免費試用
基本OCR工作流程
- 使用NuGet安裝OCR程式庫以讀取圖像
- 利用自訂的`Tesseract 5`執行OCR
- 載入所需的文件,如圖像或PDF文件,以進行處理
- 將提取的文字輸出到主控台或文件
- 將結果保存為可搜索的PDF
我如何建立一個IronTesseract實例?
使用此程式碼初始化一個Tesseract物件:
: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()
您可以通過選擇不同的語言、啟用條碼閱讀以及白名單/黑名單字元來自定義IronTesseract的行為。 IronOCR提供了全面的配置選項以微調您的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
}
一旦配置好,您就可以使用Tesseract功能來讀取OcrInput物件。 OcrInput類提供了靈活的方法來載入各種輸入格式:
: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
對於複雜的場景,您可以利用多執行緒功能同時處理多個文件,大大提高批處理操作的性能。
什麼是高級Tesseract配置變數?
IronOcr Tesseract介面允許通過IronOcr.TesseractConfiguration類全面控制Tesseract配置變數。 這些高級設置使您能夠為特定用例優化OCR性能,例如修正低質量掃描或閱讀特定文件型別。
如何在程式碼中使用Tesseract配置?
: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還提供了針對不同文件型別的專用配置。例如,當閱讀護照或處理MICR支票時,您可以應用特定的預處理過濾器和區域檢測以提高準確性。
金融文件的範例配置:
: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
所有Tesseract配置變數的完整列表是什麼?
這些可以使用IronTesseract.Configuration.TesseractVariables["key"] = value;設置。 配置變數允許您微調OCR行為,以便針對特定文件獲得最佳結果。 有關優化OCR性能的詳細指南,請參閱我們的快速OCR配置指南。
| Tesseract配置變數 | Default | 含義 |
|---|---|---|
| classify_num_cp_levels | 3 | 類剪裁程式的層級數量 |
| textord_debug_tabfind | 0 | 除錯標籤查找 |
| textord_debug_bugs | 0 | 啟用關於標籤查找中的錯誤的輸出 |
| textord_testregion_left | -1 | 除錯報告矩形的左邊緣 |
| textord_testregion_top | -1 | 除錯報告矩形的上邊緣 |
| textord_testregion_right | 2147483647 | 除錯矩形的右邊緣 |
| textord_testregion_bottom | 2147483647 | 除錯矩形的底部邊緣 |
| textord_tabfind_show_partitions | 0 | 顯示分區邊界,若>1則等待 |
| devanagari_split_debuglevel | 0 | 分割shiro-rekha過程的除錯級別。 |
| edges_max_children_per_outline | 10 | 字元輪廓內最大子項數量 |
| edges_max_children_layers | 5 | 字元輪廓內巢狀子項的最大層數 |
| edges_children_per_grandchild | 10 | 丟棄輪廓的重點比例 |
| edges_children_count_limit | 45 | blob中允許的最大孔洞數 |
| edges_min_nonhole | 12 | 方框中潛在字元的最少像素 |
| edges_patharea_ratio | 40 | Max lensq/area for acceptable child outline |
| textord_fp_chop_error | 2 | 允許的切割單元最大彎曲度 |
| textord_tabfind_show_images | 0 | Show image blobs |
| textord_skewsmooth_offset | 4 | 平滑因子 |
| textord_skewsmooth_offset2 | 1 | 平滑因子 |
| textord_test_x | -2147483647 | 測試點的坐標 |
| textord_test_y | -2147483647 | 測試點的坐標 |
| textord_min_blobs_in_row | 4 | 在梯度计数前的最小Blob數 |
| 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 | ||
| repair_unchopped_blobs | ||
| 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 | ||
| paragraph_text_based | ||
| 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 | ||
| preserve_interword_spaces | ||
| 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 | ||
| output_ambig_words_file | ||
| 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 | %| | 非標準輪廓數量 |
| outlines_2ij!?%":; | 非標準輪廓數量 | |
| numeric_punctuation | ., | Punct. chs expected WITHIN numbers |
| unrecognised_char | | | Output char for unidentified blobs |
| ok_repeated_ch_non_alphanum_wds | -?*= | Allow NN to unrej |
| conflict_set_I_l_1 | Il1 [] | Il1 conflict set |
| file_type | .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 | ||
| rating_scale | ||
| 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 |
為了獲得最佳效果,建議在應用OCR之前使用IronOCR的圖像預處理濾鏡。 這些濾鏡可以顯著提高準確性,特別是在處理低質量掃描或像表格這樣的複雜文件時。
常見問題
如何在 C# 中配置 IronTesseract 進行 OCR?
要配置 IronTesseract,請建立 IronTesseract 實例,並設置如 Language 和 Configuration 等屬性。您可以指定 OCR 語言(從 125 個支援語言中),啟用條碼閱讀,配置可搜尋 PDF 輸出,及設置字元白名單。例如:var tesseract = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true } };
IronTesseract 支援哪些輸入格式?
IronTesseract 接受透過 OcrInput 類的各種輸入格式。您可以處理影像(PNG、JPG等)、PDF 檔案及掃描文件。OcrInput 類提供靈活的方法來載入這些不同格式,讓您可以輕鬆地對幾乎任何包含文字的文件進行 OCR。
我可以使用 IronTesseract 同時讀取條碼和文字嗎?
可以,IronTesseract 包括進階的條碼閱讀功能。您可以在 TesseractConfiguration 中設定 ReadBarCodes = true 來啟用條碼檢測。這允許您在單次 OCR 操作中從同一文件提取文字及條碼資料。
如何從掃描文件建立可搜索的 PDF?
IronTesseract 可以通過在 TesseractConfiguration 中設定 RenderSearchablePdf = true 將掃描文件和圖像轉換成可搜尋的 PDF。這樣做會建立文字可選取和搜尋的 PDF 檔案,同時保留原始文件的外觀。
IronTesseract 支援哪幾種語言的 OCR?
IronTesseract 支援 125 種國際語言的文字識別。您可以設置 IronTesseract 實例的 Language 屬性來指定語言,如 IronOcr.OcrLanguage.English、西班牙語、中文、阿拉伯語等。
我可以限制 OCR 識別哪些字元嗎?
可以,IronTesseract 允許透過 TesseractConfiguration 中的 WhiteListCharacters 屬性進行字元白名單和黑名單設定。當您知道預期的字元集時,此功能有助於提高準確性,例如僅限於識別字母及數字字元。
如何同時對多個文件進行 OCR?
IronTesseract 支援多執行緒功能以進行批量處理。您可以利用平行處理同時對多個文件進行 OCR,從而大幅提升處理大量圖像或 PDF 檔案的效能。
IronOCR 使用哪一個版本的 Tesseract?
IronOCR 使用一個自定義且經過優化的 Tesseract 5 版本,稱為 Iron Tesseract。這個增強引擎在提高準確度及性能的同時,仍保持與 .NET 應用程式的相容性。
IronOCR如何提高資料精確性?
IronOCR通過其先進的識別算法和影像校正功能提高資料精確性,確保文字提取過程既可靠又精確。
IronOCR有免費試用版嗎?
有的,Iron Software提供IronOCR的免費試用版,允許使用者在做出購買決定前測試其功能和能力。

