Como Usar o Iron Tesseract para Converter Imagem em Texto em C
O Iron Tesseract em C# é usado ao criar uma instância de IronTesseract, configurando-a com configurações de idioma e leitura de texto e, em seguida, chamando o método Read() em um objeto OcrInput contendo suas imagens ou PDFs. Isso converte imagem em texto e gera PDFs pesquisáveis usando o mecanismo otimizado de Tesseract 5.
O IronOCR fornece uma API intuitiva para utilizar o Tesseract 5 personalizado e otimizado, conhecido como Iron Tesseract. Usando o IronOCR e IronTesseract, você poderá converter imagens de texto e documentos digitalizados em texto e PDFs pesquisáveis. A biblioteca oferece suporte a 125 idiomas internacionais e inclui recursos avançados como leitura de código de barras e visão computacional .
Início rápido: Configurar o IronTesseract em C#
Este exemplo demonstra como configurar IronTesseract com configurações específicas e realizar OCR em uma única linha de código.
-
Instale IronOCR com o Gerenciador de Pacotes NuGet
PM > Install-Package IronOcr -
Copie e execute este trecho de código.
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")); -
Implante para testar em seu ambiente de produção.
Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita
- Instale a biblioteca OCR com o NuGet para ler imagens.
- Utilize Custom `Tesseract 5` to perform OCR
- Carregue os documentos desejados, como imagens ou arquivos PDF, para processamento.
- Exiba o texto extraído no console ou em um arquivo.
- Salve o resultado como um PDF pesquisável.
Como faço para criar uma instância do IronTesseract?
Inicialize um objeto Tesseract com este código:
: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()
Você pode personalizar o comportamento de IronTesseract selecionando diferentes idiomas, habilitando a leitura de código de barras e colocando caracteres na lista branca/preta. O IronOCR oferece opções de configuração abrangentes para ajustar seu processo de 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
}
Uma vez configurado, você pode usar a funcionalidade Tesseract para ler objetos OcrInput. A classe OcrInput fornece métodos flexíveis para carregar diversos formatos de entrada:
: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
Para cenários complexos, você pode aproveitar os recursos de multithreading para processar vários documentos simultaneamente, melhorando significativamente o desempenho das operações em lote.
Quais são as variáveis de configuração avançadas do Tesseract?
A interface IronOcr Tesseract permite o controle total das variáveis de configuração do Tesseract através da classe IronOcr.TesseractConfiguration . Essas configurações avançadas permitem otimizar o desempenho do OCR para casos de uso específicos, como corrigir digitalizações de baixa qualidade ou ler tipos específicos de documentos .
Como faço para usar a configuração do Tesseract no código?
: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)
O IronOCR também oferece configurações especializadas para diferentes tipos de documentos. Por exemplo, ao ler passaportes ou processar cheques MICR , você pode aplicar filtros de pré-processamento específicos e detecção de região para melhorar a precisão.
Exemplo de configuração para documentos financeiros:
// 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_pesado_nr"] = false,
["bordas_máximo_filhos_por_contorno"] = 10
}
}
};
// Apply preprocessing filters for better accuracy
using OcrInput input = new OcrInput();
input.LoadPdf("financial-document.pdf");
input.Deskew();
input.EnhanceResolution(300);
OcrResult result = ocr.Read(input);
// Example: Configure for financial documents
IronTesseract ocr = new IronTesseract
{
Language = OcrLanguage.English,
Configuration = new TesseractConfiguration
{
PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock,
TesseractVariables = new Dictionary<string, object>
{
["tessedit_char_whitelist"] = "0123456789.$,",
["textord_pesado_nr"] = false,
["bordas_máximo_filhos_por_contorno"] = 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_pesado_nr", False},
{"bordas_máximo_filhos_por_contorno", 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
Qual é a lista completa de todas as variáveis de configuração do Tesseract?
Esses podem ser configurados usando IronTesseract.Configuration.TesseractVariables["key"] = value;. As variáveis de configuração permitem ajustar o comportamento do OCR para obter resultados ideais com seus documentos específicos. Para obter orientações detalhadas sobre como otimizar o desempenho do OCR, consulte nosso guia de configuração rápida de OCR .
| Variável de configuração do Tesseract | Padrão | Significado |
|---|---|---|
| classificar_num_níveis_cp | 3 | Número de níveis do podador de classe |
| textord_debug_tabfind | 0 | Encontrando a guia Depurar |
| textord_debug_bugs | 0 | Ative a saída relacionada a erros na localização de guias. |
| textord_testregion_esquerda | -1 | Borda esquerda do retângulo de relatório de depuração |
| textord_testregion_top | -1 | Borda superior do retângulo de relatório de depuração |
| textord_testregion_right | 2147483647 | Borda direita do retângulo de depuração |
| textord_testregion_bottom | 2147483647 | Borda inferior do retângulo de depuração |
| textord_tabfind_mostrar_partições | 0 | Exibir limites da partição, aguardando se >1 |
| devanagari_split_debuglevel | 0 | Nível de depuração para o processo shiro-rekha dividido. |
| bordas_máximo_filhos_por_contorno | 10 | Número máximo de crianças dentro do contorno de um personagem. |
| camadas_filhas_máximas_de_bordas | 5 | Número máximo de camadas de filhos aninhados dentro do contorno de um personagem. |
| bordas_filhos_por_neto | 10 | Proporção de importância para contornos de recorte |
| limite_de_contagem_de_filhos_das_bordas | 45 | Número máximo de buracos permitidos na bolha |
| bordas_mín_sem_buraco | 12 | Número mínimo de pixels para possível caractere na caixa |
| proporção_área_do_caminho_das_bordas | 40 | Max lensq/area for acceptable child outline |
| textord_fp_chop_error | 2 | Max permitiu a flexão das células picadas |
| textord_tabfind_mostrar_imagens | 0 | Show image blobs |
| textord_skewsmooth_offset | 4 | Para fator suave |
| textord_skewsmooth_offset2 | 1 | Para fator suave |
| textord_test_x | -2147483647 | coordenadas do ponto de teste |
| textord_test_y | -2147483647 | coordenadas do ponto de teste |
| textord_min_blobs_in_row | 4 | Número mínimo de blobs antes da contagem do gradiente |
| 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 |
| versão_linear_pitsync | 6 | Use new fast algorithm |
| pitsync_profundidade_falsa | 1 | Max advance fake generation |
| textord_tabfind_show_strokewidths | 0 | Show stroke widths |
| textord_dotmatrix_gap | 3 | Max pixel gap for broken pixed pitch |
| bloco de depuração textord | 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_semente_imagem | 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 |
| tamanho_do_espaço_textord_é_variável | 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_mostrar_cortes_fixos | 0 | Draw fixed pitch cell boundaries |
| edges_use_new_outline_complexity | 0 | Use the new outline complexity module |
| bordas_depuração | 0 | turn on debugging for this module |
| correção de bordas_filhos | 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_sem_quanta_isolada | 0 | Ensure gaps not less than 2quanta wide |
| textord_pesado_nr | 0 | Vigorously remove noise |
| textord_mostrar_linhas_iniciais | 0 | Display row accumulation |
| textord_mostrar_linhas_paralelas | 0 | Display page correlated rows |
| textord_mostrar_linhas_expandidas | 0 | Display rows after expanding |
| textord_mostrar_linhas_finais | 0 | Display rows after final fitting |
| textord_mostrar_blobs_finais | Display blob bounds after pre-ass | |
| textord_test_landscape | 0 | Tests refer to land/port |
| textord_linhas_de_base_paralelas | 1 | Force parallel baselines |
| textord_linhas_de_base_retas | 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_inicial_xheight | 1 | Use test xheight mechanism |
| textord_debug_blob | 0 | Print test blob information |
| textord_realmente_antigo_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 |
| correção antigabl | 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_mostrar_tabelas | 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_mostrar_recortes_de_página | ||
| textord_pitch_cheat | ||
| textord_blockndoc_fixado | ||
| textord_mostrar_palavras_iniciais | ||
| textord_mostrar_novas_palavras | ||
| textord_mostrar_palavras_fixas | ||
| textord_blocksall_fixed | ||
| textord_blocksall_prop | ||
| textord_blocksall_testing | ||
| textord_modo_teste | ||
| similaridade_linha_textord_pitch | ||
| palavras_iniciais_minúsculas | ||
| palavras_iniciais_maiúsculas | ||
| palavras_propriedade_padrão_não_espaço | ||
| palavras_padrão_espaço_fixo | ||
| palavras_padrão_limite_fixo | ||
| textord_words_definite_spread | ||
| textord_spacesize_ratiofp | ||
| textord_spacesize_ratioprop | ||
| textord_fpiqr_ratio | ||
| textord_max_pitch_iqr | ||
| textord_fp_min_width | ||
| textord_underline_offset | ||
| nível_de_depuração_ambigs | ||
| nível_de_depuração_classificar | ||
| método_de_normação_classificatória | ||
| matcher_debug_level | ||
| sinalizadores_de_depuração_do_correspondente | ||
| nível de depuração de aprendizado de classificação | ||
| matcher_permanent_classes_min | ||
| matcher_min_examples_for_prototyping | ||
| matcher_sufficient_examples_for_prototyping | ||
| limiar_de_adaptação_proto | ||
| limiar de adaptação de classificação | ||
| limiar_classify_class_prunter | ||
| multiplicador_de_podador_de_classificação | ||
| classificar_cp_força_de_corte | ||
| classificar_multiplicador_de_correspondência_inteira | ||
| nível de depuração dawg | ||
| nível_de_depuração_hífen | ||
| stopper_smallword_size | ||
| nível_de_depuração_stopper | ||
| tessedit_truncate_wordchoice_log | ||
| tentativas_máximas_permutador | ||
| reparar_blobs_não_cortados | ||
| chop_debug | ||
| comprimento_dividido_cortado | ||
| cortar_mesma_distância | ||
| pontos_mínimos_de_contorno | ||
| tamanho_da_pilha_da_costura_picada | ||
| ângulo_interno_cortado | ||
| área de contorno mínima de corte | ||
| largura_máxima_centralizada_cortada | ||
| peso_cortado_x_y | ||
| nível_de_depuração_wordrec | ||
| wordrec_max_join_chunks | ||
| nível_de_depuração_da_busca_segmentada | ||
| segsearch_max_pain_points | ||
| segsearch_max_futile_classifications | ||
| nível de depuração do modelo de linguagem | ||
| ordem_ngram_modelo_de_linguagem | ||
| language_model_viterbi_list_ max_num_prunable | ||
| language_model_viterbi_list_max_size | ||
| comprimento_mínimo_composto_do_modelo_de_linguagem | ||
| wordrec_display_segmentations | ||
| tessedit_pageseg_mode | ||
| tessedit_ocr_engine_mode | ||
| páginaseg_devanagari_split_strategy | ||
| ocr_devanagari_split_strategy | ||
| bidi_debug | ||
| applybox_debug | ||
| applybox_page | ||
| tessedit_bigram_debug | ||
| remoção de ruído de depuração | ||
| ruído_máximoporblob | ||
| ruído_máximo_por_palavra | ||
| debug_x_ht_level | ||
| qualidade_mínima_inicial_alfas_reqd | ||
| tessedit_tess_adaption_mode | ||
| nível de depuração multilíngue | ||
| nível_de_depuração_de_parágrafo | ||
| tessedit_preserve_min_wd_len | ||
| classificação_máxima_de_crucagem | ||
| indicadores_crunch_pot | ||
| strings_de_folha_crunch_lc | ||
| crunch_leave_uc_strings | ||
| crunch_long_repetitions | ||
| crunch_debug | ||
| fixsp_non_noise_limit | ||
| fixsp_modo_concluído | ||
| debug_fix_space_level | ||
| x_ht_tolerância_de_aceitação | ||
| x_ht_min_change | ||
| superscript_debug | ||
| qualidade_jpg | ||
| dpi definido pelo usuário | ||
| min_characters_to_try | ||
| suspect_level | ||
| suspect_short_words | ||
| tessedit_modo_rejeitar | ||
| tessedit_image_border | ||
| min_sane_x_ht_pixels | ||
| tessedit_page_number | ||
| tessedit_paralelizar | ||
| lstm_modo_de_escolha | ||
| lstm_choice_iterations | ||
| nível_de_depuração_tosp | ||
| tosp_espaço_suficiente_amostras_para_mediana | ||
| tosp_redo_kern_limit | ||
| tosp_poucas_amostras | ||
| linha_curta_tosp | ||
| método_de_sanidade_tosp | ||
| tamanho_máximo_de_ruído_textord | ||
| textord_baseline_debug | ||
| textord_noise_sizefraction | ||
| limite de transposição de ruído textord | ||
| textord_noise_sncount | ||
| usar ambiguidades para adaptação | ||
| priorize_division | ||
| classificar_habilitar_aprendizagem | ||
| tess_cn_matching | ||
| tess_bn_matching | ||
| classificar_ativar_correspondência_adaptativa | ||
| classificar_usar_modelos_pré_adaptados | ||
| classificar_salvar_modelos_adaptados | ||
| classificar_ativar_depurador_adaptativo | ||
| classificar_norma_não_linear | ||
| disable_character_fragments | ||
| classificar_fragmentos_de_caracteres_de_depuração | ||
| matcher_debug_separate_windows | ||
| classificar_bln_modo_numérico | ||
| carregar_sistema_cão | ||
| carregar_freq_dawg | ||
| carregar_cão_sem_ambiguidade | ||
| carregar_punc_dawg | ||
| carregar_número_cão | ||
| carregar_bigram_dawg | ||
| use_only_first_uft8_step | ||
| stopper_sem_escolhas_aceitáveis | ||
| segmento_não_alfabético_script | ||
| salvar_palavras_doc | ||
| mesclar_fragmentos_na_matriz | ||
| wordrec_enable_assoc | ||
| forçar_associação_de_palavras | ||
| chop_enable | ||
| corte_deslizamento_vertical | ||
| pilha de costura nova | ||
| assume_fixed_pitch_char_segment | ||
| wordrec_skip_no_truth_words | ||
| wordrec_debug_blamer | ||
| wordrec_run_blamer | ||
| salvar_opções_alternativas | ||
| 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_treinamento | ||
| tessedit_adaption_debug | ||
| applybox_learn_chars_and_char_frags_mode | ||
| applybox_learn_ngrams_mode | ||
| tessedit_exibir_palavras_saídas | ||
| 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_ativar_correção_de_bigramas | ||
| tessedit_enable_dict_correction | ||
| ativar_remoção_de_ruído | ||
| tessedit_minimal_rej_pass1 | ||
| tessedit_test_adaption | ||
| teste_pt | ||
| parágrafo_texto_baseado | ||
| lstm_use_matrix | ||
| tessedit_boa_qualidade_não_rej | ||
| 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 | ||
| strings_de_saída_ok_crunch | ||
| 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 | ||
| modo_de_exibição_interativo | ||
| 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 | ||
| preservar_espaços_entre_palavras | ||
| páginaseg_aplicar_máscara_musical | ||
| textord_modo_altura_única | ||
| tosp_old_to_method | ||
| tosp_old_to_constrain_sp_kn | ||
| tosp_only_use_prop_rows | ||
| tosp_forçar_quebra_de_palavras_no_ponto | ||
| tosp_use_pre_chopping | ||
| tosp_old_to_bug_fix | ||
| tosp_block_use_cert_spaces | ||
| tosp_row_use_cert_spaces | ||
| tosp_blobs_estreitos_não_certificado | ||
| tosp_row_use_cert_spaces1 | ||
| tosp_recovery_isolated_row_stats | ||
| tosp_apenas_pequenos_espaços_para_kern | ||
| tosp_all_flips_fuzzy | ||
| tosp_fuzzy_limit_all | ||
| textord_sem_rejeições | ||
| textord_mostrar_blobs | ||
| textord_mostrar_caixas | ||
| textord_ruído_rejwords | ||
| textord_noise_rejrows | ||
| textord_ruído_depuração | ||
| classificar_aprender_depurar_str | ||
| arquivo_de_palavras_do_usuário | ||
| sufixo_palavras_do_usuário | ||
| arquivo_de_padrões_do_usuário | ||
| sufixo_padrões_de_usuário | ||
| arquivo de palavras ambíguas de saída | ||
| palavra_para_depurar | ||
| tessedit_char_blacklist | ||
| tessedit_char_whitelist | ||
| tessedit_char_unblacklist | ||
| tessedit_write_params_to_file | ||
| aplicar_padrão_de_exposição_da_caixa | ||
| chs_leading_punct('`" | ||
| chs_trailing_punct1 | ||
| chs_trailing_punct2)'`" | ||
| contornos_ímpares | %| | Número não padrão de contornos |
| outlines_2ij!?%":; | Número não padrão de contornos | |
| pontuação_numérica | ., | Punct. chs expected WITHIN numbers |
| caractere_não_reconhecido | | | Output char for unidentified blobs |
| ok_repeated_ch_non_alphanum_wds | -?*= | Allow NN to unrej |
| conflito_conjunto_I_l_1 | Il1 [] | Il1 conflict set |
| tipo_de_arquivo | .tif | Filename extension |
| tessedit_load_sublangs | ||
| separador_de_página | ||
| classify_char_norm_range | ||
| classificar_taxa_máxima | ||
| classificar_margem_de_certeza_máxima | ||
| matcher_good_threshold | ||
| resultado_adaptativo_confiável_do_matcher | ||
| limiar_perfeito_do_correspondente | ||
| matcher_bad_match_pad | ||
| margem_de_classificação_do_comparador | ||
| matcher_avg_noise_size | ||
| matcher_clustering_max_angle_delta | ||
| penalização_de_lixo_desajustado | ||
| escala_de_avaliação | ||
| escala_de_certeza | ||
| tessedit_class_miss_scale | ||
| fator_de_poda_adaptado_classificar | ||
| limiar de poda adaptado de classificação | ||
| classificar_fragmentos_de_caracteres_lixo_limiar_de_certeza | ||
| tamanho_máximo_grande_do_speckle | ||
| penalidade_de_classificação_speckle | ||
| xheight_penalty_subscripts | ||
| penalidade_altura_x_inconsistente | ||
| segment_penalty_dict_frequent_word | ||
| segment_penalty_dict_case_ok | ||
| segment_penalty_dict_case_bad | ||
| segment_penalidade_dict_nonword | ||
| escala_de_certeza | ||
| 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 |
Para obter melhores resultados, recomenda-se usar os filtros de pré-processamento de imagem do IronOCR antes de aplicar o OCR. Esses filtros podem melhorar drasticamente a precisão, especialmente ao trabalhar com digitalizações de baixa qualidade ou documentos complexos, como tabelas .
Perguntas frequentes
Como configuro o IronTesseract para OCR em C#?
Para configurar o IronTesseract, crie uma instância do IronTesseract e defina propriedades como Idioma e Configuração. Você pode especificar o idioma do OCR (dentre 125 idiomas suportados), habilitar a leitura de código de barras, configurar a saída em PDF pesquisável e definir a lista de caracteres permitidos. Por exemplo: var tesseract = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.English, Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = false, RenderSearchablePdf = true } };
Quais formatos de entrada o IronTesseract suporta?
O IronTesseract aceita diversos formatos de entrada através da classe OcrInput. Você pode processar imagens (PNG, JPG, etc.), arquivos PDF e documentos digitalizados. A classe OcrInput oferece métodos flexíveis para carregar esses diferentes formatos, facilitando a execução de OCR em praticamente qualquer documento que contenha texto.
Posso ler códigos de barras juntamente com texto usando o IronTesseract?
Sim, o IronTesseract inclui recursos avançados de leitura de código de barras. Você pode habilitar a detecção de código de barras definindo `ReadBarCodes = true` na configuração do Tesseract. Isso permite extrair dados de texto e código de barras do mesmo documento em uma única operação de OCR.
Como faço para criar PDFs pesquisáveis a partir de documentos digitalizados?
O IronTesseract pode converter documentos e imagens digitalizados em PDFs pesquisáveis definindo `RenderSearchablePdf = true` na configuração do Tesseract. Isso cria arquivos PDF onde o texto é selecionável e pesquisável, mantendo a aparência original do documento.
Quais idiomas o IronTesseract suporta para OCR?
O IronTesseract suporta 125 idiomas internacionais para reconhecimento de texto. Você pode especificar o idioma definindo a propriedade `Language` na sua instância do IronTesseract, como `IronOcr.OcrLanguage.English`, `Spanish`, `Chinese`, `Arabic` e muitos outros.
Posso restringir quais caracteres são reconhecidos durante o OCR?
Sim, o IronTesseract permite a criação de listas de permissão e bloqueio de caracteres através da propriedade WhiteListCharacters em TesseractConfiguration. Esse recurso ajuda a melhorar a precisão quando você conhece o conjunto de caracteres esperado, como, por exemplo, limitar o reconhecimento apenas a caracteres alfanuméricos.
Como faço para realizar OCR em vários documentos simultaneamente?
O IronTesseract oferece suporte a recursos multithread para processamento em lote. Você pode aproveitar o processamento paralelo para realizar OCR em vários documentos simultaneamente, melhorando significativamente o desempenho ao lidar com grandes volumes de imagens ou PDFs.
Qual versão do Tesseract o IronOCR utiliza?
O IronOCR utiliza uma versão personalizada e otimizada do Tesseract 5, conhecida como Iron Tesseract. Este mecanismo aprimorado oferece maior precisão e desempenho em comparação com as implementações padrão do Tesseract, mantendo a compatibilidade com aplicativos .NET.

