Görsel dosyadan metin nasıl çıkarılır

Iron Tesseract C# Nasıl Kullanılır

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

  1. IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronOcr
  2. 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"));
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın

    arrow pointer

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()
$vbLabelText   $csharpLabel

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
}
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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_levels3Sınıf Kesici Seviyeleri Sayısı
textord_debug_tabfind0Sekme bulmayı hata ayıkla
textord_debug_bugs0Sekme bulmadaki hatalarla ilgili çıktı açın
textord_testregion_left-1Hata ayıklama raporlama dikdörtgeninin sol kenarı
textord_testregion_top-1Hata ayıklama raporlama dikdörtgeninin üst kenarı
textord_testregion_right2147483647Hata ayıklama dikdörtgeninin sağ kenarı
textord_testregion_bottom2147483647Hata ayıklama dikdörtgeninin alt kenarı
textord_tabfind_show_partitions0Bölüm sınırlarını göster, > 1 ise bekle
devanagari_split_debuglevel0Bölme shiro-rekha işlemi için hata ayıklama seviyesi.
edges_max_children_per_outline10Bir karakter dış hatlarının içindeki maksimum çocuk sayısı
edges_max_children_layers5Bir karakter dış hatlarının içindeki iç içe geçmiş maksimum katmanlar
edges_children_per_grandchild10Dış hatları sıkma için önem oranı
edges_children_count_limit45Blobdaki maksimum izin verilen delik sayısı
edges_min_nonhole12Kutu içindeki potansiyel karakter için minimum piksel
edges_patharea_ratio40Max lensq/area for acceptable child outline
textord_fp_chop_error2Hücre kesimlerinin izin verilen maksimum bükülmesi
textord_tabfind_show_images0Show image blobs
textord_skewsmooth_offset4Düzeltme faktörü için
textord_skewsmooth_offset21Düzeltme faktörü için
textord_test_x-2147483647test pt koordinatı
textord_test_y-2147483647test pt koordinatı
textord_min_blobs_in_row4Gradyan sayılmadan önceki minimum bloblar
textord_spline_minblobs8Min blobs in each spline segment
textord_spline_medianwin6Size of window for spline segmentation
textord_max_blob_overlaps4Max number of blobs a big blob can overlap
textord_min_xheight10Min credible pixel xheight
textord_lms_line_trials12Number of linew fits to do
oldbl_holed_losscount10Max lost before fallback line used
pitsync_linear_version6Use new fast algorithm
pitsync_fake_depth1Max advance fake generation
textord_tabfind_show_strokewidths0Show stroke widths
textord_dotmatrix_gap3Max pixel gap for broken pixed pitch
textord_debug_block0Block to do debug on
textord_pitch_range2Max range test on pitch
textord_words_veto_power5Rows required to outvote a veto
equationdetect_save_bi_image0Save input bi image
equationdetect_save_spt_image0Save special character image
equationdetect_save_seed_image0Save the seed image
equationdetect_save_merged_image0Save the merged image
poly_debug0Debug old poly
poly_wide_objects_better1More accurate approx on wide things
wordrec_display_splits0Display splits
textord_debug_printable0Make debug windows printable
textord_space_size_is_variable0If true, word delimiter spaces are assumed to have variable width, even though characters have fixed pitch.
textord_tabfind_show_initial_partitions0Show partition bounds
textord_tabfind_show_reject_blobs0Show blobs rejected as noise
textord_tabfind_show_columns0Show column bounds
textord_tabfind_show_blocks0Show final block bounds
textord_tabfind_find_tables1run table detection
devanagari_split_debugimage0Whether to create a debug image for split shiro-rekha process.
textord_show_fixed_cuts0Draw fixed pitch cell boundaries
edges_use_new_outline_complexity0Use the new outline complexity module
edges_debug0turn on debugging for this module
edges_children_fix0Remove boxy parents of char-like children
gapmap_debug0Say which blocks have tables
gapmap_use_ends0Use large space at start and end of rows
gapmap_no_isolated_quanta0Ensure gaps not less than 2quanta wide
textord_heavy_nr0Vigorously remove noise
textord_show_initial_rows0Display row accumulation
textord_show_parallel_rows0Display page correlated rows
textord_show_expanded_rows0Display rows after expanding
textord_show_final_rows0Display rows after final fitting
textord_show_final_blobs0Display blob bounds after pre-ass
textord_test_landscape0Tests refer to land/port
textord_parallel_baselines1Force parallel baselines
textord_straight_baselines0Force straight baselines
textord_old_baselines1Use old baseline algorithm
textord_old_xheight0Use old xheight algorithm
textord_fix_xheight_bug1Use spline baseline
textord_fix_makerow_bug1Prevent multiple baselines
textord_debug_xheights0Test xheight algorithms
textord_biased_skewcalc1Bias skew estimates with line length
textord_interpolating_skew1Interpolate across gaps
textord_new_initial_xheight1Use test xheight mechanism
textord_debug_blob0Print test blob information
textord_really_old_xheight0Use original wiseowl xheight
textord_oldbl_debug0Debug old baseline generation
textord_debug_baselines0Debug baseline generation
textord_oldbl_paradef1Use para default mechanism
textord_oldbl_split_splines1Split stepped splines
textord_oldbl_merge_parts1Merge suspect partitions
oldbl_corrfix1Improve correlation of heights
oldbl_xhfix0Fix bug in modes threshold for xheights
textord_ocropus_mode0Make baselines for ocropus
textord_tabfind_only_strokewidths0Only run stroke widths
textord_tabfind_show_initialtabs0Show tab candidates
textord_tabfind_show_finaltabs0Show tab vectors
textord_show_tables0Show table regions
textord_tablefind_show_mark0Debug table marking steps in detail
textord_tablefind_show_stats0Show page stats used in table finding
textord_tablefind_recognize_tables0Enables the table recognizer for table layout and filtering.
textord_all_prop0All doc is proportial text
textord_debug_pitch_test0Debug on fixed pitch test
textord_disable_pitch_test0Turn off dp fixed pitch algorithm
textord_fast_pitch_test0Do even faster pitch algorithm
textord_debug_pitch_metric0Write full metric stuff
textord_show_row_cuts0Draw row-level cuts
textord_show_page_cuts0Draw page-level cuts
textord_pitch_cheat0Use correct answer for fixed/prop
textord_blockndoc_fixed0Attempt whole doc/block fixed pitch
textord_show_initial_words0Display separate words
textord_show_new_words0Display separate words
textord_show_fixed_words0Display forced fixed pitch words
textord_blocksall_fixed0Moan about prop blocks
textord_blocksall_prop0Moan about fixed pitch blocks
textord_blocksall_testing0Dump stats when moaning
textord_test_mode0Do current test
textord_pitch_rowsimilarity0.08Fraction of xheight for sameness
words_initial_lower0.5Max initial cluster size
words_initial_upper0.15Min initial cluster spacing
words_default_prop_nonspace0.25Fraction of xheight
words_default_fixed_space0.75Fraction of xheight
words_default_fixed_limit0.6Allowed size variance
textord_words_definite_spread0.3Non-fuzzy spacing region
textord_spacesize_ratiofp2.8Min ratio space/nonspace
textord_spacesize_ratioprop2Min ratio space/nonspace
textord_fpiqr_ratio1.5Pitch IQR/Gap IQR threshold
textord_max_pitch_iqr0.2Xh fraction noise in pitch
textord_fp_min_width0.5Min width of decent blobs
textord_underline_offset0.1Fraction of x to ignore
ambigs_debug_level0Debug level for unichar ambiguities
classify_debug_level0Classify debug level
classify_norm_method1Normalization Method ...
matcher_debug_level0Matcher Debug Level
matcher_debug_flags0Matcher Debug Flags
classify_learning_debug_level0Learning Debug Level:
matcher_permanent_classes_min1Min # of permanent classes
matcher_min_examples_for_ prototyping3Reliable Config Threshold
matcher_sufficient_examples_ for_prototyping5Enable adaption even if the ambiguities have not been seen
classify_adapt_proto_threshold230Threshold for good protos during adaptive 0-255
classify_adapt_feature_threshold230Threshold for good features during adaptive 0-255
classify_class_pruner_threshold229Class Pruner Threshold 0-255
classify_class_pruner_multiplier15Class Pruner Multiplier 0-255:
classify_cp_cutoff_strength7Class Pruner CutoffStrength:
classify_integer_matcher_multiplier10Integer Matcher Multiplier 0-255:
dawg_debug_level0Set to 1 for general debug info, to 2 for more details, to 3 to see all the debug messages
hyphen_debug_level0Debug level for hyphenated words.
stopper_smallword_size2Size of dict word to be treated as non-dict word
stopper_debug_level0Stopper debug level
tessedit_truncate_wordchoice_log10Max words to keep in list
max_permuter_attempts10000Maximum 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_blobs1Fix blobs that aren't chopped
chop_debug0Chop debug
chop_split_length10000Split Length
chop_same_distance2Same distance
chop_min_outline_points6Min Number of Points on Outline
chop_seam_pile_size150Max number of seams in seam_pile
chop_inside_angle-50Min Inside Angle Bend
chop_min_outline_area2000Min Outline Area
chop_centered_maxwidth90Width of (smaller) chopped blobs above which we don't care that a chop is not near the center.
chop_x_y_weight3X / Y length weight
wordrec_debug_level0Debug level for wordrec
wordrec_max_join_chunks4Max number of broken pieces to associate
segsearch_debug_level0SegSearch debug level
segsearch_max_pain_points2000Maximum number of pain points stored in the queue
segsearch_max_futile_classifications20Maximum number of pain point classifications per chunk that did not result in finding a better word choice.
language_model_debug_level0Language model debug level
language_model_ngram_order8Maximum order of the character ngram model
language_model_viterbi_list_ max_num_prunable10Maximum number of prunable (those for which PrunablePath() is true) entries in each viterbi list recorded in BLOB_CHOICEs
language_model_viterbi_list_max_size500Maximum size of viterbi lists recorded in BLOB_CHOICEs
language_model_min_compound_length3Minimum length of compound words
wordrec_display_segmentations0Display Segmentations
tessedit_pageseg_mode6Page 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_mode2Which OCR engine(s) to run (Tesseract, LSTM, both). Defaults to loading and running the most accurate available.
pageseg_devanagari_split_strategy0Whether to use the top-line splitting process for Devanagari documents while performing page-segmentation.
ocr_devanagari_split_strategy0Whether to use the top-line splitting process for Devanagari documents while performing ocr.
bidi_debug0Debug level for BiDi
applybox_debug1Debug level
applybox_page0Page number to apply boxes from
tessedit_bigram_debug0Amount of debug output for bigram correction.
debug_noise_removal0Debug reassignment of small outlines
noise_maxperblob8Max diacritics to apply to a blob
noise_maxperword16Max diacritics to apply to a word
debug_x_ht_level0Reestimate debug
quality_min_initial_alphas_reqd2alphas in a good word
tessedit_tess_adaption_mode39Adaptation decision algorithm for tess
multilang_debug_level0Print multilang debug info.
paragraph_debug_level0Print paragraph debug info.
tessedit_preserve_min_wd_len2Only preserve wds longer than this
crunch_rating_max10For adj length in rating per ch
crunch_pot_indicators1How many potential indicators needed
crunch_leave_lc_strings4Don't crunch words with long lower case strings
crunch_leave_uc_strings4Don't crunch words with long lower case strings
crunch_long_repetitions3Crunch words with long repetitions
crunch_debug0As it says
fixsp_non_noise_limit1How many non-noise blbs either side?
fixsp_done_mode1What constitues done for spacing
debug_fix_space_level0Contextual fixspace debug
x_ht_acceptance_tolerance8Max allowed deviation of blob top outside of font data
x_ht_min_change8Min change in xht before actually trying it
superscript_debug0Debug level for sub & superscript fixer
jpg_quality85Set JPEG quality level
user_defined_dpi0Specify DPI for input image
min_characters_to_try50Specify minimum characters to try during OSD
suspect_level99Suspect marker level
suspect_short_words2Don't suspect dict wds longer than this
tessedit_reject_mode0Rejection algorithm
Tessedit_image_border2Rej blbs near image edge limit
Min_sane_x_ht_pixels8Reject any x-ht lt or eq than this
Tessedit_page_number-1-1 -> All pages, else specific page to process
Tessedit_parallelize1Run in parallel where possible
Lstm_choice_mode2Allows 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_iterations5Sets 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_level0Debug data
tosp_enough_space_samples_for_median3or should we use mean
Tosp_redo_kern_limit10No.samples reqd to reestimate for row
Tosp_few_samples40No.gaps reqd with 1 large gap to treat as a table
Tosp_short_row20No.gaps reqd with few cert spaces to use certs
Tosp_sanity_method1How to avoid being silly
Textord_max_noise_size7Pixel size of noise
Textord_baseline_debug0Baseline debug level
Textord_noise_sizefraction10Fraction of size for maxima
Textord_noise_translimit16Transitions for normal blob
Textord_noise_sncount1super norm blobs to save row
Use_ambigs_for_adaption0Use ambigs for deciding whether to adapt to a character
Öncelikli olarak bölme0Prioritize blob division over chopping
Classify_enable_learning1Enable adaptive classifier
Tess_cn_matching0Character Normalized Matching
Tess_bn_matching0Baseline Normalized Matching
classify_enable_adaptive_matcher1Enable adaptive classifier
classify_use_pre_adapted_templates0Use pre-adapted classifier templates
classify_save_adapted_templates0Save adapted templates to a file
classify_enable_adaptive_debugger0Enable match debugger
Classify_nonlinear_norm0Non-linear stroke-density normalization
disable_character_fragments1Do not include character fragments in the results of the classifier
classify_debug_character_fragments0Bring up graphical debugging windows for fragments training
Eşleyici_ayrı_pencerelerde_hata_ayıklama0Use two different windows for debugging the matching: One for the protos and one for the features.
Classify_bln_numeric_mode0Assume the input is numbers [0-9].
Load_system_dawg1Load system word dawg.
Load_freq_dawg1Load frequent word dawg.
Load_unambig_dawg1Load unambiguous word dawg.
Load_punc_dawg1Load dawg with punctuation patterns.
Load_number_dawg1Load dawg with number patterns.
Load_bigram_dawg1Load dawg with special word bigrams.
Sadece_ilk_uft8_adımını_kullan0Use only the first UTF8 step of the given string when computing log probabilities.
Kabul_edilebilir_seçenek_yok_durdurucu0Make AcceptableChoice() always return false. Useful when there is a need to explore all segmentations
Alfabetik_olmayan_senaryo_segmentleme0Don'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_words0Save Document Words
Matriste_parçaları_birleştir1Merge the fragments in the ratings matrix and delete them after merging
Wordrec_enable_assoc1Associator Enable
Kelime_birlikteliği_zorlama0force associator to run regardless of what enable_assoc is. This is used for CJK where component grouping is necessary.
Chop_enable1Chop enable
Chop_dikey_sürünme0Vertical creep
Chop_yeni_dikiş_yığını1Use new seam_pile
Sabit_adım_karakter_segmenti_kabul_edildi_varsay0include fixed-pitch heuristics in char segmentation
Wordrec_skip_no_truth_words0Only run OCR for words that had truth recorded in BlamerBundle
Wordrec_debug_blamer0Print blamer debug messages
Wordrec_run_blamer0Try to set the blame for errors
Save_alt_choices1Save alternative paths found during chopping and segmentation search
language_model_ngram_on0Turn on/off the use of character ngram model
language_model_ngram_use_ only_first_uft8_step0Use only the first UTF8 step of the given string when computing log probabilities.
Dil_modeli_ngram_alanı_ aralık_dilli1Words are delimited by space
Dil_modeli_sigmoidal_kesinlik_kullan0Use sigmoidal score for certainty
Tessedit_kutulardan_yeniden_segmentleyin0Take segmentation and labeling from box file
Tessedit_hatta_kutulardan_yeniden_segmentleyin0Conversion of word/line box file to char box file
Tessedit_kutulardan_eğitim0Generate training data from boxed chars
Tessedit_kutulardan_kutular_yap0Generate more boxes from boxed chars
Tessedit_hat_tanıyıcı_eğitimi0Break input into lines and remap boxes if present
Tessedit_sayfa_seg_resimlerini_dökmek0Dump intermediate images made during page segmentation
Tessedit_ters_do_yap1Try inverting the image in LSTMRecognizeWord
Tessedit_adabetsizler_idman0Perform training for ambiguities
Tessedit_adaption_hata_ayıklama0Generate and print debug information for adaption
Applybox_haritalar_ve_karakter_kırıntı_modunu_öğren0Learn both character fragments (as is done in the special low exposure mode) as well as unfragmented characters.
Applybox_ngrams_modunu_öğren0Each bounding box is assumed to contain ngrams. Only learn the ngrams whose outlines overlap horizontally.
Tessedit_dışımızdaki_kelime_söyledikleri_göster0Draw output words
Tessedit_tercihleri_dök0Dump char choices
Tessedit_timing_hata_ayıklama0Print timing stats
Tessedit_bulanık_alanları_düzeltme1Try to improve fuzzy spaces
Tessedit_herhangi_bir_kelimeyi_rej_reji0Don't bother with word plausibility
Tessedit_tireleri_düzeltmek1Crunch double hyphens?
Tessedit_belge_sözlüğü_etkinleştir1Add words to the document dictionary
Tessedit_fontları_hata_ayıklama0Output font info per char
Tessedit_blok_red_etkinleştirme_hata_ayıklama0Block and Row stats
Tessedit_bigram_düzeltmeyi_aktif_et1Enable correction based on the word bigram dictionary.
Tessedit_sözlüğü_düzeltmeyi_aktif_et0Enable single word correction based on the dictionary.
Gürültü_çıkartmayı_etkinleştir1Remove and conditionally reassign small outlines when they confuse layout analysis, determining diacritics vs noise
Tessedit_minimal_rej_pass10Do minimal rejection on pass 1 output
Tessedit_adapte_sınavı0Test adaption criteria
Test_pt0Test for point
Paragraf_metin_temelli1Run paragraph detection on the post-text-recognition (more accurate)
Lstm_matrisi_kullan1Use ratings matrix/beam search with lstm
Tessedit_iyi_kalite_ile_red_et1Reduce rejection on good docs
Tessedit_boşlukları_reddet_kullan1Reject spaces?
tessedit_preserve_blk_rej_perfect_wds1Only rej partially rejected words in block rejection
tessedit_preserve_row_rej_perfect_wds1Only rej partially rejected words in row rejection
tessedit_dont_blkrej_good_wds0Use word segmentation quality metric
tessedit_dont_rowrej_good_wds0Use word segmentation quality metric
tessedit_row_rej_good_docs1Apply row rejection to good docs
tessedit_reject_bad_qual_wds1Reject all bad quality wds
tessedit_debug_doc_rejection0Page stats
tessedit_debug_quality_metrics0Output data to debug file
bland_unrej0unrej potential with no checks
unlv_tilde_crunching0Mark v.bad words for tilde crunch
Hocr_font_info0Add font info to hocr output
Hocr_karakter_kutuları0Add coordinates for each character to hocr output
Crunch_erken_birleş_tess_hataları1Before word crunch?
Crunch_erken_kötü_unlv_chs_ele0Take out ~^ early?
Crunch_korkunç_çöp1As it says
Crunch_tamam_sıraları_bırak1Don't touch sensible strings
crunch_accept_ok1Use acceptability in okstring
crunch_leave_accept_strings0Don't pot crunch sensible strings
crunch_include_numerals0Fiddle alpha figures
tessedit_prefer_joined_punct0Reward punctuation joins
tessedit_write_block_separators0Write block separators in output
tessedit_write_rep_codes0Write repetition char code
tessedit_write_unlv0Write .unlv output file
tessedit_create_txt0Write .txt output file
tessedit_create_hocr0Write .html hOCR output file
tessedit_create_alto0Write .xml ALTO file
tessedit_create_lstmbox0Write .box file for LSTM training
tessedit_create_tsv0Write .tsv output file
tessedit_create_wordstrbox0Write WordStr format .box output file
tessedit_create_pdf0Write .pdf output file
textonly_pdf0Create PDF with only one invisible text layer
suspect_constrain_1Il0UNLV keep 1Il chars rejected
tessedit_minimal_rejection0Only reject tess failures
tessedit_zero_rejection0Don't reject ANYTHING
tessedit_word_for_word0Make output have exactly one word per WERD
tessedit_zero_kelvin_rejection0Don't reject ANYTHING AT ALL
tessedit_rejection_debug0Adaption debug
tessedit_flip_0O1Contextual 0O O0 flips
rej_trust_doc_dawg0Use DOC dawg in 11l conf. detector
rej_1Il_use_dict_word0Use dictword test
rej_1Il_trust_permuter_type1Don't double check
Rej_kullan_tess_kabul_edildi1Individual rejection control
Rej_kullan_tess_boş1Individual rejection control
Rej_kullan_iyi_permutasyon1Individual rejection control
Rej_kullanın_akla_yatkın_kelime0Extend permuter check
Rej_numara_perm_alpha0Extend permuter check
Tessedit_kutu_dosyası_oluştur0Output text with boxes
Tessedit_resim_yaz0Capture the image from the IPE
Interaktif_gösterim_modu0Run interactively?
Tessedit_permuter_aşılama1According to dict_word
Tessedit_baş_parametre_modeli_kullan0In multilingual mode use params model of the primary language
Textord_tabfind_vlines_öster0Debug line finding
Textord_cjk_fp_modeli_kullan0Use CJK fixed pitch model
Poly_detaylı_fx_izin_ver0Allow feature extractors to see the original outline
Tessedit_yalnızca_konfigürasyon_baş_ol0Only 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_recognition0Turn on equation detector
Textord_tabfind_dikey_metin1Enable vertical detection
Textord_tabfind_dikey_metni_zorlama0Force using vertical text page mode
Kelimeler_dahilinde_boşlukları_koru0Preserve multiple interword spaces
Sayfa_seg_apply_music_mask1Detect music staff and remove intersecting components
Textord_tek_yükseklik_modu0Script has no xheight, so use a single mode
Tosp_yanlış_to_metodu0Space stats use prechopping?
Tosp_yanlış_sp_kn_sınırlayın0Constrain relative values of inter and intra-word gaps for old_to_method.
Sadece_prop_satırlarını_kullanın1Block stats to use fixed pitch rows?
Tosp_küçük_punktuasyonlarda_zorunlu_kelime_punktuasyon0Force word breaks on punct to break long lines in non-space delimited langs
Tosp_ön_kesme_kullanma0Space stats use prechopping?
Tosp_yanlış_bug_fixed0Fix suspected bug in old code
Tosp_block_sertifikalı_boşlukları_kullan1Only stat OBVIOUS spaces
Tosp_sıra_sertifikalı_boşlukları_kullanın1Only stat OBVIOUS spaces
Tosp_blobs_dar_değil_sert1Only stat OBVIOUS spaces
Tosp_row_cert_spaces1_kullanın1Only stat OBVIOUS spaces
Tosp_izole_satır_istatistiklerini_onar1Use row alone when inadequate cert spaces
Tosp_çekirdek_için_sadece_küçük_aralıklar0Better guess
Tosp_bütün_değişiklikleri_duyarlı0Pass ANY flip to context?
Tosp_bulanık_limit_bütün1Don't restrict kn->sp fuzzy limit to tables
Textord_rejects_yok0Don't remove noise blobs
Textord_blobs_göster0Display unsorted blobs
Textord_kutuları_göster0Display unsorted blobs
Textord_noise_rejwords1Reject noise-like words
Textord_noise_rejrows1Reject noise-like rows
Textord_noise_hata_ayıklama0Debug row garbage detector
Classify_öğrenme_hata_ayıklama_strClass str to debug learning
Kullanıcı_sözlüğü_dosyasıA filename of user-provided words.
Kullanıcı_sözlük_ekA suffix of user-provided words located in tessdata.
Kullanıcı_model_dosyasıA filename of user-provided patterns.
Kullanıcı_mod_sufiksA 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ıklamakWord for which stopper debug information should be printed to stdout
Tessedit_karakter_kara listesiBlacklist of chars not to recognize
Tessedit_karakter_beyaz listesiWhitelist of chars to recognize
Tessedit_karakter_blacklistasyonunu_açList of chars to override Tessedit_karakter_kara listesi
tessedit_write_params_to_fileWrite all parameters to the given file.
Applybox_exposure_pattern.expExposure 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_1Il1 []Il1 conflict set
dosya_tipi.tifFilename extension
Tessedit_alt_diller_yükleList 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.2Character Normalization Range ...
sınıflandırma_max_değerlendirme_oranı1.5Veto ratio between classifier ratings
sınıflandırma_max_kesinlik_margin5.5Veto difference between classifier certainties
eşleştirici_iyi_eşik0.125Good Match (0-1)
eşleştirici_güvenilir_adaptif_sonuç0Great Match (0-1)
eşleştirici_kusursuz_eşik0.02Perfect Match (0-1)
eşleştirici_kötü_eşleşme_pad0.15Bad Match Pad (0-1)
eşleştirici_değerleme_margin0.1New template margin (0-1)
eşleştirici_ortalama_gürültü_boyutu12Avg. noise blob length
eşleştirici_gruplama_max_açı_delta0.015Maximum angle delta for prototype clustering
sınıflandırma_uyuşmazlık_junk_cezası0Penalty to apply when a non-alnum is vertically out of its expected textline position
değerlendirme_ölçeği1.5Rating scaling factor
kesinlik_ölçeği20Certainty scaling factor
Tessedit_sınıf_kaçırma_ölçeği0.00390625Scale factor for features not used
sınıflandırma_adapte_edilen_budama_faktörü2.5Prune poor adapted results this much worse than best result
sınıflandırma_adapte_edilen_budama_eşiği-1Threshold 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-3Exclude fragments that do not look like whole characters from training and adaption
benek_büyük_max_boyut0.3Max large speckle size
benek_değerleme_cezası10Penalty to add to worst rating for noise
xyükseklik_cezası_abonelikler0.125Score penalty (0.1 = 10%) added if there are subscripts or superscripts in a word, but it is otherwise OK.
xyükseklik_cezası_tutarsız0.25Score penalty (0.1 = 10%) added if an xheight is inconsistent.
segment_cezası_sözlük_sık_kelime1Score multiplier for word matches which have good case and are frequent in the given language (lower is better).
segment_cezası_sözlük_durum_tamam1.1Score multiplier for word matches that have good case (lower is better).
segment_cezası_sözlük_durum_kötü1.3125Default score multiplier for word matches, which may have case issues (lower is better).
segment_cezası_sözlük_kelimesiz1.25Score multiplier for glyph fragment segmentations which do not match a dictionary word (lower is better).
kesinlik_ölçeği20Certainty scaling factor
stopper_nondict_certainty_base-2.5Certainty threshold for non-dict words
stopper_phase2_certainty_rejection_offset1Reject certainty offset
stopper_certainty_per_char-0.5Certainty to add for each dict char above small word size.
stopper_allowable_character_badness3Max certaintly variation allowed in a word (in sigma)
doc_dict_pending_threshold0Worst certainty for using pending dictionary
belge_sözlük_kesinlik_eşiği-2.25Worst certainty for words that can be inserted into the document dictionary
tessedit_kesinlik_eşiği-2.25Good blob limit
chop_split_dist_knob0.5Split length adjustment
chop_overlap_knob0.9Split overlap adjustment
chop_center_knob0.15Split center adjustment
chop_sharpness_knob0.06Split sharpness adjustment
chop_width_change_knob5Width change adjustment
chop_ok_split100OK split limit
chop_good_split50Good split limit
segment_araştırma_max_karakter_genişlik_yükseklik_oranı2Maksimum 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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Gözden Geçiren
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluğu Ekibi
Jeff, .NET ve Visual Studio ekipleri için bir Baş Program Yöneticisidir. .NET Conf sanal konferans serisinin baş yapımcısıdır ve haftada iki kez canlı yayınlanan 'Fritz and Friends' adlı bir akış programı sunar; burada izleyicilerle birlikte teknoloji konuşur ve kod yazar. Jeff, en büyük Microsoft geliştirici etkinlikleri için atölyeler, sunumlar ve içerik planları yazar, Microsoft Build, Microsoft Ignite, .NET Conf ve Microsoft MVP Summit gibi etkinliklerde yer alır.
Başlamaya Hazır mısınız?
Nuget İndirmeler 6,151,372 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.