Iron Tesseract C# Nasıl Kullanılır
Iron Tesseract, C# içinde, bir IronTesseract örneği oluşturarak, bunu dil ve OCR ayarlarıyla yapılandırarak ve ardından görüntülerinizi veya PDF'lerinizi içeren bir OcrInput nesnesi üzerinde Read() yöntemini çağırarak kullanılır. Bu, metin görüntülerini Tesseract 5'nun optimize edilmiş motorunu kullanarak aranabilir PDF'lere dönüştürür.
IronOCR, Iron Tesseract olarak bilinen özelleştirilmiş ve optimize edilmiş Tesseract 5'i kullanmak için sezgisel bir API sağlar. IronOCR ve IronTesseract kullanarak, metin görüntüleri ve taranmış belgeleri metne ve aranabilir PDF'lere dönüştürebileceksiniz. Kütüphane 125 uluslararası dili destekler ve barkod okuma ve bilgisayarla görü gibi gelişmiş özellikler içerir.
Hızlı Başlat: IronTesseract Yapılandırmasını C# ortamında kurma
Bu örnek, belirli ayarlarla IronTesseract'u nasıl yapılandıracağınızı ve tek bir kod satırında OCR yapacağınızı göstermektedir.
-
IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin
-
Bu kod parçacığını kopyalayın ve çalıştırın.
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")); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
Temel OCR İş Akışı
- NuGet ile OCR Kütüphanesini Okumak için Kurun
- Özel `Tesseract 5` kullanarak OCR yapın
- İşleme için görüntüler veya PDF dosyaları gibi istenen belgeleri yükleyin
- Çıkarılan metni konsola veya bir dosyaya çıkartın
- Sonucu aranabilir bir PDF olarak kaydedin
IronTesseract Örneği Nasıl Oluşturulur?
Bu kodla bir Tesseract nesnesini başlatın:
: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()
Farklı dilleri seçerek, barkod okumasını etkinleştirerek ve karakterleri beyaz listeye/al kara listeye alarak IronTesseract'un davranışını özelleştirebilirsiniz. IronOCR, OCR işleminizi ince ayar yapmanız için kapsamlı yapılandırma seçenekleri sağlar:
: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
}
Yapılandırıldıktan sonra, OcrInput nesnelerini okumak için Tesseract işlevselliğini kullanabilirsiniz. OcrInput sınıfı, çeşitli giriş formatlarını yüklemek için esnek yöntemler sağlar:
: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
Karmaşık senaryolar için, toplu işlemler için performansı önemli ölçüde artırarak, çoklu belgeleri aynı anda işlemek için çoklu iş parçacığı özelliklerinden yararlanabilirsiniz.
İleri Düzey Tesseract Yapılandırma Değişkenleri Nelerdir?
IronOcr Tesseract arayüzü, IronOcr.TesseractConfiguration Sınıfı aracılığıyla Tesseract yapılandırma değişkenlerinin kontrolünü tamamen sağlar. Bu gelişmiş ayarlar, düşük kaliteli taramaları düzeltme veya belirli belge türlerini okuma gibi belirli kullanım durumları için OCR performansını optimize etmenizi sağlar.
Tesseract Yapılandırması Kodu Nasıl Kullanılır?
: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 farklı belge türleri için özel yapılandırma da sağlar. Pasaportları okurken veya MICR çeklerini işlerken, belirli ön işleme filtreleri ve bölge tespiti uygulayarak doğruluğu artırabilirsiniz.
Finansal belgeler için örnek yapılandırma:
: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
Tüm Tesseract Yapılandırma Değişkenlerinin Tam Listesi Nedir?
Bunlar IronTesseract.Configuration.TesseractVariables["key"] = value; kullanılarak ayarlanabilir. Yapılandırma değişkenleri, belirli belgelerinizle optimal sonuçlar için OCR davranışını ince ayar yapmanıza olanak tanır. OCR performansını optimize etmek için ayrıntılı kılavuz için hızlı OCR yapılandırma kılavuzumuza bakın.
| Tesseract Yapılandırma Değişkeni | Default | Anlamı |
|---|---|---|
| classify_num_cp_levels | 3 | Sınıf Kesici Seviyeleri Sayısı |
| textord_debug_tabfind | 0 | Sekme bulmayı hata ayıkla |
| textord_debug_bugs | 0 | Sekme bulmadaki hatalarla ilgili çıktı açın |
| textord_testregion_left | -1 | Hata ayıklama raporlama dikdörtgeninin sol kenarı |
| textord_testregion_top | -1 | Hata ayıklama raporlama dikdörtgeninin üst kenarı |
| textord_testregion_right | 2147483647 | Hata ayıklama dikdörtgeninin sağ kenarı |
| textord_testregion_bottom | 2147483647 | Hata ayıklama dikdörtgeninin alt kenarı |
| textord_tabfind_show_partitions | 0 | Bölüm sınırlarını göster, > 1 ise bekle |
| devanagari_split_debuglevel | 0 | Bölme shiro-rekha işlemi için hata ayıklama seviyesi. |
| edges_max_children_per_outline | 10 | Bir karakter dış hatlarının içindeki maksimum çocuk sayısı |
| edges_max_children_layers | 5 | Bir karakter dış hatlarının içindeki iç içe geçmiş maksimum katmanlar |
| edges_children_per_grandchild | 10 | Dış hatları sıkma için önem oranı |
| edges_children_count_limit | 45 | Blobdaki maksimum izin verilen delik sayısı |
| edges_min_nonhole | 12 | Kutu içindeki potansiyel karakter için minimum piksel |
| edges_patharea_ratio | 40 | Max lensq/area for acceptable child outline |
| textord_fp_chop_error | 2 | Hücre kesimlerinin izin verilen maksimum bükülmesi |
| textord_tabfind_show_images | 0 | Show image blobs |
| textord_skewsmooth_offset | 4 | Düzeltme faktörü için |
| textord_skewsmooth_offset2 | 1 | Düzeltme faktörü için |
| textord_test_x | -2147483647 | test pt koordinatı |
| textord_test_y | -2147483647 | test pt koordinatı |
| textord_min_blobs_in_row | 4 | Gradyan sayılmadan önceki minimum bloblar |
| 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 | 0 | 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 | Use old baseline algorithm |
| 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 | 0 | All doc is proportial text |
| textord_debug_pitch_test | 0 | Debug on fixed pitch test |
| textord_disable_pitch_test | 0 | Turn off dp fixed pitch algorithm |
| textord_fast_pitch_test | 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 |
| textord_pitch_cheat | 0 | Use correct answer for fixed/prop |
| textord_blockndoc_fixed | 0 | Attempt whole doc/block fixed pitch |
| textord_show_initial_words | 0 | Display separate words |
| textord_show_new_words | 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 |
| textord_test_mode | 0 | Do current test |
| textord_pitch_rowsimilarity | 0.08 | Fraction of xheight for sameness |
| words_initial_lower | 0.5 | Max initial cluster size |
| words_initial_upper | 0.15 | Min initial cluster spacing |
| words_default_prop_nonspace | 0.25 | Fraction of xheight |
| words_default_fixed_space | 0.75 | Fraction of xheight |
| words_default_fixed_limit | 0.6 | Allowed size variance |
| textord_words_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 |
| textord_fpiqr_ratio | 1.5 | Pitch IQR/Gap IQR threshold |
| textord_max_pitch_iqr | 0.2 | Xh fraction noise in pitch |
| textord_fp_min_width | 0.5 | Min width of decent blobs |
| textord_underline_offset | 0.1 | Fraction of x to ignore |
| ambigs_debug_level | 0 | Debug level for unichar ambiguities |
| classify_debug_level | 0 | Classify debug level |
| classify_norm_method | 1 | Normalization Method ... |
| matcher_debug_level | 0 | Matcher Debug Level |
| matcher_debug_flags | 0 | Matcher Debug Flags |
| classify_learning_debug_level | 0 | Learning Debug Level: |
| matcher_permanent_classes_min | 1 | Min # of permanent classes |
| matcher_min_examples_for_ prototyping | 3 | Reliable Config Threshold |
| matcher_sufficient_examples_ for_prototyping | 5 | Enable adaption even if the ambiguities have not been seen |
| classify_adapt_proto_threshold | 230 | Threshold for good protos during adaptive 0-255 |
| classify_adapt_feature_threshold | 230 | Threshold for good features during adaptive 0-255 |
| classify_class_pruner_threshold | 229 | Class Pruner Threshold 0-255 |
| classify_class_pruner_multiplier | 15 | Class Pruner Multiplier 0-255: |
| classify_cp_cutoff_strength | 7 | Class Pruner CutoffStrength: |
| classify_integer_matcher_multiplier | 10 | Integer Matcher Multiplier 0-255: |
| dawg_debug_level | 0 | Set to 1 for general debug info, to 2 for more details, to 3 to see all the debug messages |
| hyphen_debug_level | 0 | Debug level for hyphenated words. |
| stopper_smallword_size | 2 | Size of dict word to be treated as non-dict word |
| stopper_debug_level | 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. |
| repair_unchopped_blobs | 1 | Fix blobs that aren't chopped |
| chop_debug | 0 | Chop debug |
| chop_split_length | 10000 | Split Length |
| chop_same_distance | 2 | Same distance |
| chop_min_outline_points | 6 | Min Number of Points on Outline |
| chop_seam_pile_size | 150 | Max number of seams in seam_pile |
| chop_inside_angle | -50 | Min Inside Angle Bend |
| chop_min_outline_area | 2000 | Min Outline Area |
| chop_centered_maxwidth | 90 | Width of (smaller) chopped blobs above which we don't care that a chop is not near the center. |
| chop_x_y_weight | 3 | X / Y length weight |
| wordrec_debug_level | 0 | Debug level for wordrec |
| wordrec_max_join_chunks | 4 | Max number of broken pieces to associate |
| segsearch_debug_level | 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. |
| language_model_debug_level | 0 | Language model debug level |
| language_model_ngram_order | 8 | Maximum order of the character ngram model |
| language_model_viterbi_list_ max_num_prunable | 10 | Maximum number of prunable (those for which PrunablePath() is true) entries in each viterbi list recorded in BLOB_CHOICEs |
| language_model_viterbi_list_max_size | 500 | Maximum size of viterbi lists recorded in BLOB_CHOICEs |
| language_model_min_compound_length | 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) |
| tessedit_ocr_engine_mode | 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 |
| applybox_debug | 1 | Debug level |
| applybox_page | 0 | Page number to apply boxes from |
| tessedit_bigram_debug | 0 | Amount of debug output for bigram correction. |
| debug_noise_removal | 0 | Debug reassignment of small outlines |
| noise_maxperblob | 8 | Max diacritics to apply to a blob |
| noise_maxperword | 16 | Max diacritics to apply to a word |
| debug_x_ht_level | 0 | Reestimate debug |
| quality_min_initial_alphas_reqd | 2 | alphas in a good word |
| tessedit_tess_adaption_mode | 39 | Adaptation decision algorithm for tess |
| multilang_debug_level | 0 | Print multilang debug info. |
| paragraph_debug_level | 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 |
| crunch_pot_indicators | 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 |
| debug_fix_space_level | 0 | Contextual fixspace debug |
| x_ht_acceptance_tolerance | 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 |
| jpg_quality | 85 | Set JPEG quality level |
| user_defined_dpi | 0 | Specify DPI for input image |
| min_characters_to_try | 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 |
| tessedit_reject_mode | 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 |
| Tessedit_page_number | -1 | -1 -> All pages, else specific page to process |
| Tessedit_parallelize | 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. |
| Lstm_choice_iterations | 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. |
| Tosp_debug_level | 0 | Debug data |
| tosp_enough_space_samples_for_median | 3 | or should we use mean |
| Tosp_redo_kern_limit | 10 | No.samples reqd to reestimate for row |
| Tosp_few_samples | 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 |
| Tosp_sanity_method | 1 | How to avoid being silly |
| Textord_max_noise_size | 7 | Pixel size of noise |
| Textord_baseline_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 |
| Use_ambigs_for_adaption | 0 | Use ambigs for deciding whether to adapt to a character |
| Öncelikli olarak bölme | 0 | Prioritize blob division over chopping |
| Classify_enable_learning | 1 | Enable adaptive classifier |
| Tess_cn_matching | 0 | Character Normalized Matching |
| Tess_bn_matching | 0 | Baseline Normalized Matching |
| classify_enable_adaptive_matcher | 1 | Enable adaptive classifier |
| classify_use_pre_adapted_templates | 0 | Use pre-adapted classifier templates |
| classify_save_adapted_templates | 0 | Save adapted templates to a file |
| classify_enable_adaptive_debugger | 0 | Enable match debugger |
| Classify_nonlinear_norm | 0 | Non-linear stroke-density normalization |
| disable_character_fragments | 1 | Do not include character fragments in the results of the classifier |
| classify_debug_character_fragments | 0 | Bring up graphical debugging windows for fragments training |
| Eşleyici_ayrı_pencerelerde_hata_ayıklama | 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]. |
| Load_system_dawg | 1 | Load system word dawg. |
| Load_freq_dawg | 1 | Load frequent word dawg. |
| Load_unambig_dawg | 1 | Load unambiguous word dawg. |
| Load_punc_dawg | 1 | Load dawg with punctuation patterns. |
| Load_number_dawg | 1 | Load dawg with number patterns. |
| Load_bigram_dawg | 1 | Load dawg with special word bigrams. |
| Sadece_ilk_uft8_adımını_kullan | 0 | Use only the first UTF8 step of the given string when computing log probabilities. |
| Kabul_edilebilir_seçenek_yok_durdurucu | 0 | Make AcceptableChoice() always return false. Useful when there is a need to explore all segmentations |
| Alfabetik_olmayan_senaryo_segmentleme | 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 |
| Save_doc_words | 0 | Save Document Words |
| Matriste_parçaları_birleştir | 1 | Merge the fragments in the ratings matrix and delete them after merging |
| Wordrec_enable_assoc | 1 | Associator Enable |
| Kelime_birlikteliği_zorlama | 0 | force associator to run regardless of what enable_assoc is. This is used for CJK where component grouping is necessary. |
| Chop_enable | 1 | Chop enable |
| Chop_dikey_sürünme | 0 | Vertical creep |
| Chop_yeni_dikiş_yığını | 1 | Use new seam_pile |
| Sabit_adım_karakter_segmenti_kabul_edildi_varsay | 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. |
| Dil_modeli_ngram_alanı_ aralık_dilli | 1 | Words are delimited by space |
| Dil_modeli_sigmoidal_kesinlik_kullan | 0 | Use sigmoidal score for certainty |
| Tessedit_kutulardan_yeniden_segmentleyin | 0 | Take segmentation and labeling from box file |
| Tessedit_hatta_kutulardan_yeniden_segmentleyin | 0 | Conversion of word/line box file to char box file |
| Tessedit_kutulardan_eğitim | 0 | Generate training data from boxed chars |
| Tessedit_kutulardan_kutular_yap | 0 | Generate more boxes from boxed chars |
| Tessedit_hat_tanıyıcı_eğitimi | 0 | Break input into lines and remap boxes if present |
| Tessedit_sayfa_seg_resimlerini_dökmek | 0 | Dump intermediate images made during page segmentation |
| Tessedit_ters_do_yap | 1 | Try inverting the image in LSTMRecognizeWord |
| Tessedit_adabetsizler_idman | 0 | Perform training for ambiguities |
| Tessedit_adaption_hata_ayıklama | 0 | Generate and print debug information for adaption |
| Applybox_haritalar_ve_karakter_kırıntı_modunu_öğren | 0 | Learn both character fragments (as is done in the special low exposure mode) as well as unfragmented characters. |
| Applybox_ngrams_modunu_öğren | 0 | Each bounding box is assumed to contain ngrams. Only learn the ngrams whose outlines overlap horizontally. |
| Tessedit_dışımızdaki_kelime_söyledikleri_göster | 0 | Draw output words |
| Tessedit_tercihleri_dök | 0 | Dump char choices |
| Tessedit_timing_hata_ayıklama | 0 | Print timing stats |
| Tessedit_bulanık_alanları_düzeltme | 1 | Try to improve fuzzy spaces |
| Tessedit_herhangi_bir_kelimeyi_rej_reji | 0 | Don't bother with word plausibility |
| Tessedit_tireleri_düzeltmek | 1 | Crunch double hyphens? |
| Tessedit_belge_sözlüğü_etkinleştir | 1 | Add words to the document dictionary |
| Tessedit_fontları_hata_ayıklama | 0 | Output font info per char |
| Tessedit_blok_red_etkinleştirme_hata_ayıklama | 0 | Block and Row stats |
| Tessedit_bigram_düzeltmeyi_aktif_et | 1 | Enable correction based on the word bigram dictionary. |
| Tessedit_sözlüğü_düzeltmeyi_aktif_et | 0 | Enable single word correction based on the dictionary. |
| Gürültü_çıkartmayı_etkinleştir | 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 |
| Tessedit_adapte_sınavı | 0 | Test adaption criteria |
| Test_pt | 0 | Test for point |
| Paragraf_metin_temelli | 1 | Run paragraph detection on the post-text-recognition (more accurate) |
| Lstm_matrisi_kullan | 1 | Use ratings matrix/beam search with lstm |
| Tessedit_iyi_kalite_ile_red_et | 1 | Reduce rejection on good docs |
| Tessedit_boşlukları_reddet_kullan | 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 |
| Hocr_font_info | 0 | Add font info to hocr output |
| Hocr_karakter_kutuları | 0 | Add coordinates for each character to hocr output |
| Crunch_erken_birleş_tess_hataları | 1 | Before word crunch? |
| Crunch_erken_kötü_unlv_chs_ele | 0 | Take out ~^ early? |
| Crunch_korkunç_çöp | 1 | As it says |
| Crunch_tamam_sıraları_bırak | 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_use_dict_word | 0 | Use dictword test |
| rej_1Il_trust_permuter_type | 1 | Don't double check |
| Rej_kullan_tess_kabul_edildi | 1 | Individual rejection control |
| Rej_kullan_tess_boş | 1 | Individual rejection control |
| Rej_kullan_iyi_permutasyon | 1 | Individual rejection control |
| Rej_kullanın_akla_yatkın_kelime | 0 | Extend permuter check |
| Rej_numara_perm_alpha | 0 | Extend permuter check |
| Tessedit_kutu_dosyası_oluştur | 0 | Output text with boxes |
| Tessedit_resim_yaz | 0 | Capture the image from the IPE |
| Interaktif_gösterim_modu | 0 | Run interactively? |
| Tessedit_permuter_aşılama | 1 | According to dict_word |
| Tessedit_baş_parametre_modeli_kullan | 0 | In multilingual mode use params model of the primary language |
| Textord_tabfind_vlines_öster | 0 | Debug line finding |
| Textord_cjk_fp_modeli_kullan | 0 | Use CJK fixed pitch model |
| Poly_detaylı_fx_izin_ver | 0 | Allow feature extractors to see the original outline |
| Tessedit_yalnızca_konfigürasyon_baş_ol | 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_denkmek_recognition | 0 | Turn on equation detector |
| Textord_tabfind_dikey_metin | 1 | Enable vertical detection |
| Textord_tabfind_dikey_metni_zorlama | 0 | Force using vertical text page mode |
| Kelimeler_dahilinde_boşlukları_koru | 0 | Preserve multiple interword spaces |
| Sayfa_seg_apply_music_mask | 1 | Detect music staff and remove intersecting components |
| Textord_tek_yükseklik_modu | 0 | Script has no xheight, so use a single mode |
| Tosp_yanlış_to_metodu | 0 | Space stats use prechopping? |
| Tosp_yanlış_sp_kn_sınırlayın | 0 | Constrain relative values of inter and intra-word gaps for old_to_method. |
| Sadece_prop_satırlarını_kullanın | 1 | Block stats to use fixed pitch rows? |
| Tosp_küçük_punktuasyonlarda_zorunlu_kelime_punktuasyon | 0 | Force word breaks on punct to break long lines in non-space delimited langs |
| Tosp_ön_kesme_kullanma | 0 | Space stats use prechopping? |
| Tosp_yanlış_bug_fixed | 0 | Fix suspected bug in old code |
| Tosp_block_sertifikalı_boşlukları_kullan | 1 | Only stat OBVIOUS spaces |
| Tosp_sıra_sertifikalı_boşlukları_kullanın | 1 | Only stat OBVIOUS spaces |
| Tosp_blobs_dar_değil_sert | 1 | Only stat OBVIOUS spaces |
| Tosp_row_cert_spaces1_kullanın | 1 | Only stat OBVIOUS spaces |
| Tosp_izole_satır_istatistiklerini_onar | 1 | Use row alone when inadequate cert spaces |
| Tosp_çekirdek_için_sadece_küçük_aralıklar | 0 | Better guess |
| Tosp_bütün_değişiklikleri_duyarlı | 0 | Pass ANY flip to context? |
| Tosp_bulanık_limit_bütün | 1 | Don't restrict kn->sp fuzzy limit to tables |
| Textord_rejects_yok | 0 | Don't remove noise blobs |
| Textord_blobs_göster | 0 | Display unsorted blobs |
| Textord_kutuları_göster | 0 | Display unsorted blobs |
| Textord_noise_rejwords | 1 | Reject noise-like words |
| Textord_noise_rejrows | 1 | Reject noise-like rows |
| Textord_noise_hata_ayıklama | 0 | Debug row garbage detector |
| Classify_öğrenme_hata_ayıklama_str | Class str to debug learning | |
| Kullanıcı_sözlüğü_dosyası | A filename of user-provided words. | |
| Kullanıcı_sözlük_ek | A suffix of user-provided words located in tessdata. | |
| Kullanıcı_model_dosyası | A filename of user-provided patterns. | |
| Kullanıcı_mod_sufiks | A suffix of user-provided patterns located in tessdata. | |
| Output_ambig_sözcükler_dosyası | Output file for ambiguities found in the dictionary | |
| Kelimeyi_hata_ayıklamak | Word for which stopper debug information should be printed to stdout | |
| Tessedit_karakter_kara listesi | Blacklist of chars not to recognize | |
| Tessedit_karakter_beyaz listesi | Whitelist of chars to recognize | |
| Tessedit_karakter_blacklistasyonunu_aç | List of chars to override Tessedit_karakter_kara listesi | |
| tessedit_write_params_to_file | Write all parameters to the given file. | |
| Applybox_exposure_pattern | .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 |
| Önde_gelen_noktalama_işaretleri('`" | Önce gelen noktalama | |
| Arka_sıradaki_punkt1 | ).,;:?! | 1st Trailing punctuation |
| Arka_sıradaki_punkt2)'"` | 2nd Trailing punctuation | |
| çerçeveler_tuhaf | %| | Standart olmayan çerçeve sayısı |
| çerçeveler_2ij!?%":; | Standart olmayan çerçeve sayısı | |
| sayısal_noktalama | ., | Punct. chs expected WITHIN numbers |
| tanınmayan_karakter | | | Output char for unidentified blobs |
| ok_tekrarlanan_ch_alfa_say_non_alphanum_wds | -?*= | Allow NN to unrej |
| çatışma_set_I_l_1 | Il1 [] | Il1 conflict set |
| dosya_tipi | .tif | Filename extension |
| Tessedit_alt_diller_yükle | List of languages to load with this one | |
| sayfa_ayırıcı | Page separator (default is form feed control character) | |
| sınıflandırma_karakter_norm_aralığı | 0.2 | Character Normalization Range ... |
| sınıflandırma_max_değerlendirme_oranı | 1.5 | Veto ratio between classifier ratings |
| sınıflandırma_max_kesinlik_margin | 5.5 | Veto difference between classifier certainties |
| eşleştirici_iyi_eşik | 0.125 | Good Match (0-1) |
| eşleştirici_güvenilir_adaptif_sonuç | 0 | Great Match (0-1) |
| eşleştirici_kusursuz_eşik | 0.02 | Perfect Match (0-1) |
| eşleştirici_kötü_eşleşme_pad | 0.15 | Bad Match Pad (0-1) |
| eşleştirici_değerleme_margin | 0.1 | New template margin (0-1) |
| eşleştirici_ortalama_gürültü_boyutu | 12 | Avg. noise blob length |
| eşleştirici_gruplama_max_açı_delta | 0.015 | Maximum angle delta for prototype clustering |
| sınıflandırma_uyuşmazlık_junk_cezası | 0 | Penalty to apply when a non-alnum is vertically out of its expected textline position |
| değerlendirme_ölçeği | 1.5 | Rating scaling factor |
| kesinlik_ölçeği | 20 | Certainty scaling factor |
| Tessedit_sınıf_kaçırma_ölçeği | 0.00390625 | Scale factor for features not used |
| sınıflandırma_adapte_edilen_budama_faktörü | 2.5 | Prune poor adapted results this much worse than best result |
| sınıflandırma_adapte_edilen_budama_eşiği | -1 | Threshold at which sınıflandırma_adapte_edilen_budama_faktörü starts |
| sınıflandırma_karakter_parçalar i_garbage_certainty_eşiği | -3 | Exclude fragments that do not look like whole characters from training and adaption |
| benek_büyük_max_boyut | 0.3 | Max large speckle size |
| benek_değerleme_cezası | 10 | Penalty to add to worst rating for noise |
| xyükseklik_cezası_abonelikler | 0.125 | Score penalty (0.1 = 10%) added if there are subscripts or superscripts in a word, but it is otherwise OK. |
| xyükseklik_cezası_tutarsız | 0.25 | Score penalty (0.1 = 10%) added if an xheight is inconsistent. |
| segment_cezası_sözlük_sık_kelime | 1 | Score multiplier for word matches which have good case and are frequent in the given language (lower is better). |
| segment_cezası_sözlük_durum_tamam | 1.1 | Score multiplier for word matches that have good case (lower is better). |
| segment_cezası_sözlük_durum_kötü | 1.3125 | Default score multiplier for word matches, which may have case issues (lower is better). |
| segment_cezası_sözlük_kelimesiz | 1.25 | Score multiplier for glyph fragment segmentations which do not match a dictionary word (lower is better). |
| kesinlik_ölçeği | 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 |
| belge_sözlük_kesinlik_eşiği | -2.25 | Worst certainty for words that can be inserted into the document dictionary |
| tessedit_kesinlik_eşiği | -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 |
| segment_araştırma_max_karakter_genişlik_yükseklik_oranı | 2 | Maksimum karakter genişlik-yükseklik oranı |
En iyi sonuçlar için, OCR uygulamadan önce IronOCR'nin görüntü ön işleme filtrelerini kullanmanız önerilir. Bu filtreler, özellikle düşük kaliteli taramalar veya tablolar gibi karmaşık belgelerle çalışırken doğruluk oranını önemli ölçüde artırabilir.
Sıkça Sorulan Sorular
C# için OCR'a IronTesseract'ı nasıl yapılandırırım?
IronTesseract'ı yapılandırmak için bir IronTesseract örneği oluşturun ve Dil ve Yapılandırma gibi özellikleri ayarlayın. OCR dilini (125 destekli dilden) belirtip barkod okuma etkinleştirebilir, aranabilir PDF çıktısını yapılandırabilir ve karakterleri beyaz listeye alabilirsiniz. Örnek: var tesseract = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true } };
IronTesseract hangi giriş formatlarını destekler?
IronTesseract, OcrInput sınıfı aracılığıyla çeşitli giriş formatlarını kabul eder. Görüntüleri (PNG, JPG vb.), PDF dosyalarını ve taranmış belgeleri işleyebilirsiniz. OcrInput sınıfı, bu farklı formatları yüklemek için esnek yöntemler sağlar ve neredeyse metin içeren her belge üzerinde OCR işlemi yapmayı kolaylaştırır.
IronTesseract ile metin yanı sıra barkodlar da okuyabilir miyim?
Evet, IronTesseract gelişmiş barkod okuma yeteneklerini içerir. TesseractConfiguration'da ReadBarCodes = true olarak ayarlayarak barkod algılamayı etkinleştirebilirsiniz. Bu, metin ve barkod verilerini aynı belgeden tek bir OCR işleminde çıkarmanıza olanak tanır.
Taranmış belgelerden aranabilir PDF'ler nasıl oluşturabilirim?
IronTesseract, TesseractConfiguration'da RenderSearchablePdf = true olarak ayarlayarak taranmış belge ve görüntüleri aranabilir PDF'lere dönüştürebilir. Bu, metnin seçilebilir ve aranabilir olduğu PDF dosyaları oluşturur, orijinal belge görünümünü korurken.
IronTesseract OCR için hangi dilleri destekler?
IronTesseract, metin tanıma için 125 uluslararası dili destekler. Dil, IronTesseract örneğinizdeki Language özelliğini ayarlayarak, IronOcr.OcrLanguage.English, Spanish, Chinese, Arabic ve birçok başka dili belirleyerek ayarlayabilirsiniz.
OCR sırasında hangi karakterlerin tanınacağını sınırlayabilir miyim?
Evet, IronTesseract, TesseractConfiguration'daki WhiteListCharacters özelliği aracılığıyla karakter beyaz listeye alma ve siyah listeye alma seçeneklerine izin verir. Bu özellik, beklenen karakter kümesini bildiğinizde doğruluğu artırmaya yardımcı olur, örneğin tanımayı yalnızca alfanümerik karakterlerle sınırlamak.
Aynı anda birden fazla belge üzerinde OCR yapabilir miyim?
IronTesseract, toplu işleme için çok iş parçacıklı özellikleri destekler. Paralel işlemeyi kullanarak aynı anda birden fazla belge üzerinde OCR yapabilir, büyük hacimli görüntü veya PDF'lerle çalışırken performansı önemli ölçüde artırabilirsiniz.
IronOCR hangi Tesseract sürümünü kullanır?
IronOCR, Iron Tesseract olarak bilinen Tesseract 5'in özelleştirilmiş ve optimize edilmiş bir sürümünü kullanır. Bu geliştirilmiş motor, standart Tesseract uygulamalarına kıyasla artırılmış doğruluk ve performans sunar ve .NET uygulamalarıyla uyumluluğu korur.
IronOCR veri doğruluğunu nasıl artırabilir?
IronOCR, gelişmiş tanıma algoritmaları ve görüntü düzeltme özellikleriyle veri doğruluğunu artırır, böylece metin çıkarım sürecinin hem güvenilir hem de kesin olmasını sağlar.
IronOCR için ücretsiz bir deneme mevcut mu?
Evet, Iron Software, IronOCR'nin özelliklerini ve yeteneklerini, bir satın alma kararı vermeden önce test edebilmek için ücretsiz bir deneme sunar.

