如何從影像文件中提取文本

如何在 C# 中使用 Iron Tesseract

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

IronOCR 提供了一個直覺的 API,用於使用自訂和優化的 Tesseract 5,即 Iron Tesseract。 透過使用 IronOCR 和 IronTesseract,您可以將文字影像和掃描文件轉換為文字和可搜尋的 PDF。

快速入門:在 C# 中設定 IronTesseract 配置

以下是快速上手 IronTesseract 的方法。 本範例展示如何啟動引擎、調整一些設定並運行 OCR——只需一張圖像、一次調用,無需樣板程式碼。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronOCR

    PM > Install-Package IronOcr

  2. 複製並運行這段程式碼。

    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. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronOCR,免費試用!
    arrow pointer

建立 IronTesseract 實例

只要像這樣初始化一個 Tesseract 物件:

:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-initialize-irontesseract.cs
using IronOcr;

IronTesseract ocr = new IronTesseract();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

您可以透過選擇不同的語言、啟用條碼讀取以及將字元列入白名單/黑名單來自訂 IronTesseract 的行為:

: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

完成上述步驟後,您可以使用 Tesseract 功能讀取OcrInput物件:

:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-read.cs
IronTesseract ocr = new IronTesseract();

using OcrInput input = new OcrInput();
input.LoadImage("attachment.png");
OcrResult result = ocr.Read(input);
string text = result.Text;
Dim ocr As New IronTesseract()

Using input As New OcrInput()
	input.LoadImage("attachment.png")
	Dim result As OcrResult = ocr.Read(input)
	Dim text As String = result.Text
End Using
$vbLabelText   $csharpLabel

進階 Tesseract 配置變數

IronOcr Tesseract 介面允許透過IronOcr.TesseractConfiguration 類別完全控制 Tesseract 配置變數。

Tesseract 配置程式碼範例

:path=/static-assets/ocr/content-code-examples/how-to/irontesseract-tesseract-configuration.cs
using IronOcr;
using System;

IronTesseract Ocr = new IronTesseract();

Ocr.Language = OcrLanguage.English;
Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Configure Tesseract Engine
Ocr.Configuration.TesseractVariables["tessedit_parallelize"] = false;

using var input = new OcrInput();
input.LoadImage("/path/file.png");

OcrResult Result = Ocr.Read(input);
Console.WriteLine(Result.Text);
Imports IronOcr
Imports System

Private Ocr As New IronTesseract()

Ocr.Language = OcrLanguage.English
Ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd

' Configure Tesseract Engine
Ocr.Configuration.TesseractVariables("tessedit_parallelize") = False

Dim input = New OcrInput()
input.LoadImage("/path/file.png")

Dim Result As OcrResult = Ocr.Read(input)
Console.WriteLine(Result.Text)
$vbLabelText   $csharpLabel

Tesseract 所有配置變數列表

這些可以透過IronTesseract.Configuration.TesseractVariables["key"] = value;進行設定。

Tesseract 配置變數 預設 意義
分類_num_cp_levels3類別剪枝器等級數
textord_debug_tabfind0調試選項卡查找
textord_debug_bugs0啟用與製表符查找錯誤相關的輸出
textord_testregion_left-1調試報告矩形的左邊緣
textord_testregion_top-1調試報告矩形的頂部邊緣
textord_testregion_right2147483647調試矩形的右邊緣
textord_testregion_bottom2147483647調試矩形的底部邊緣
textord_tabfind_show_partitions0顯示分區邊界,如果大於 1 則等待。
devanagari_split_debuglevel0拆分 shiro-rekha 進程的調試等級。
edges_max_children_per_outline10角色輪廓內子角色的最大數量
edges_max_children_layers5角色輪廓內嵌套子角色的最大層數
每個孫子的邊緣子節點10拋擲輪廓的重要性比率
edges_children_count_limit45斑點中允許的最大孔數
edges_min_nonhole12方框內潛在字元的最小像素
邊緣路徑面積比率40可接受的兒童輪廓的最大鏡頭面積/面積
textord_fp_chop_error2最大允許的切割單元彎曲度
textord_tabfind_show_images0顯示影像斑點
textord_skewsmooth_offset4對於平滑因子
textord_skewsmooth_offset21對於平滑因子
textord_test_x-2147483647測試點座標
textord_test_y-2147483647測試點座標
textword_min_blobs_in_row4梯度計數前的最小斑點數
textord_spline_minblobs8每個樣條曲線段中的最小斑點
textord_spline_medianwin6樣條分割視窗的大小
textord_max_blob_overlaps4一個大斑點可以重疊的最大斑點數量
textord_min_xheight10最小可信像素 x 高度
textord_lms_line_trials12要進行的線性擬合次數
oldbl_holed_losscount10使用備用線路之前的最大損失
pitsync_linear_version6使用新的快速演算法
pitsync_fake_depth1最大程度的偽造
textord_tabfind_show_strokewidths0顯示筆畫寬度
textord_dotmatrix_gap3像素間距破損時的最大像素間隙
textord_debug_block0阻塞以進行調試
文字音調範圍2球場上的最大射程測試
textord_words_veto_power5推翻否決所需的票數
equationdetect_save_bi_image0儲存輸入的雙影像
equationdetect_save_spt_image0保存特殊字元影像
方程式檢測保存種子影像0保存種子影像
方程式檢測保存合併影像0儲存合併後的影像
poly_debug0調試舊多邊形
poly_wide_objects_better1更精確的近似值適用於寬泛的事物
wordrec_display_splits0顯示分割
textord_debug_printable0使調試視窗可列印
textord_space_size_is_variable0如果屬實,則假定單字分隔符空格的寬度是可變的,即使字元的間距是固定的。
textord_tabfind_show_initial_partitions0顯示分區邊界
textord_tabfind_show_reject_blobs0顯示被判定為噪音的斑點
textord_tabfind_show_columns0顯示列邊界
textord_tabfind_show_blocks0顯示最終區塊邊界
textord_tabfind_find_tables1運行表檢測
devanagari_split_debugimage0是否為拆分 shiro-rekha 程序建立調試鏡像。
textord_show_fixed_cuts0繪製固定間距單元格邊界
邊緣使用新的輪廓複雜性0使用新的大綱複雜度模組
邊緣調試0啟用此模組的調試功能
edges_children_fix0移除焦炭狀子代的方形盒子狀父母
gapmap_debug0說明哪些區塊有表格
gapmap_use_ends0在行的開頭和結尾留出較大的空間
gapmap_no_isolated_quanta0確保間隙寬度不小於 2 量子
textord_heavy_nr0強力消除噪音
textord_show_initial_rows0顯示行累積
textord_show_parallel_rows0顯示頁面相關行
textord_show_expanded_rows0展開後顯示行
textord_show_final_rows0最終擬合後的顯示行
textord_show_final_blobs0預先分配後顯示斑點邊界
textord_test_landscape0測試指的是陸地/港口
textord_parallel_baselines1力平行基線
textord_straight_baselines0強迫直線底線
textord_old_baselines1使用舊的基線演算法
textord_old_xheight0使用舊的 xheight 演算法
textord_fix_xheight_bug1使用樣條基線
textord_fix_makerow_bug1防止出現多個基線
textord_debug_xheights0測試 x 高度演算法
textord_biased_skewcalc1線長度偏差估計
textord_interpolating_skew1跨越間隙進行插值
textord_new_initial_xheight1使用測試 x 高度機制
textord_debug_blob0列印測試斑點訊息
textord_really_old_xheight0使用原始的wiseowl x高度
textord_oldbl_debug0調試舊基線生成
textord_debug_baselines0調試基線生成
textord_oldbl_paradef1使用預設機制
textord_oldbl_split_splines1分裂階梯樣條
textord_oldbl_merge_parts1合併可疑分割區
oldbl_corrfix1提高身高相關性
oldbl_xhfix0修復模式閾值中 x 高度的錯誤
textord_ocropus_mode0為蛸蛸建立基線
textord_tabfind_only_strokewidths0僅運行筆畫寬度
textord_tabfind_show_initialtabs0顯示標籤候選
textord_tabfind_show_finaltabs0顯示標籤頁向量圖
textord_show_tables0顯示表格區域
textord_tablefind_show_mark0詳細調試表標記步驟
textord_tablefind_show_stats0顯示用於表格查找的頁面統計信息
textord_tablefind_recognize_tables0啟用表格識別器,用於表格佈局和篩選。
textord_all_prop0所有文件均為比例文本
textord_debug_pitch_test0固定音高測試調試
textord_disable_pitch_test0關閉 DP 固定螺距演算法
textord_fast_pitch_test0實現更快的音調演算法
textord_debug_pitch_metric0寫出完整的公制單位內容
textord_show_row_cuts0繪製行級切口
textord_show_page_cuts0繪製頁面級切口
textord_pitch_cheat0使用固定/私有財產的正確答案
textord_blockndoc_fixed0嘗試整個文檔/模組固定音高
textord_show_initial_words0顯示單獨的詞語
textord_show_new_words0顯示單獨的詞語
textord_show_fixed_words0顯示強制固定音高詞語
textord_blocksall_fixed0抱怨支撐塊
textord_blocksall_prop0抱怨固定螺距塊
textord_blocksall_testing0抱怨時丟棄統計數據
文字測試模式0進行當前測試
textord_pitch_scalebigwords0大詞評分
textord_restore_underlines1剪掉底線並放回原位
textord_fp_chopping1進行固定音高切分
textord_force_make_prop_words0將所有行強制進行比例分詞
textord_chopper_test0直升機正在測試中。
wordrec_display_all_blobs0顯示斑點
wordrec_blob_pause0斑點斷裂
串流檔案列表0從標準輸入串流文件列表
偵錯檔案 要將 tprintf 輸出傳送到的文件
字體名稱分類未知字體訓練中使用的預設字體名稱
文件標題 輸出文件標題(用於 hOCR 和 PDF 輸出)
點積自動用於計算點積的函數
classify_cp_angle_pad_loose45修枝剪角度墊鬆動
classify_cp_angle_pad_medium20中型修枝剪角度墊
classify_cp_angle_pad_tight10CLass 修枝剪角度墊緊
classify_cp_end_pad_loose0.5修枝剪末端墊鬆動
classify_cp_end_pad_medium0.5中型修枝剪末端墊
classify_cp_end_pad_tight0.5修枝剪末端墊緊
classify_cp_side_pad_loose2.5修枝剪側墊鬆動
classify_cp_side_pad_medium1.2中型修枝剪側墊
classify_cp_side_pad_tight0.6修枝剪側墊緊
分類_pp_角度墊45原型修枝剪角度墊
分類_pp_end_pad0.5原型修剪末端墊
分類_pp_side_pad2.5原型修枝剪側墊
分類最小斜率0.414214斜率低於該斜率的線稱為水平線
分類最大斜率2.41421斜率大於該斜率的線稱為垂直線
分類規範調整中點32規範調整中點…
分類規範調整捲曲2調整捲曲度…
分類_pico_feature_length0.05皮米特徵長度
textord_underline_threshold0.5寬度佔比
邊緣子區域0.5子輪廓的最小面積分數
邊緣框區域0.875盒子孫子最小面積分數
textord_fp_chop_snap0.5切點到頂點的最大距離
gapmap_大間隙1.75xht 乘數
textord_spline_shift_fraction0.02四邊形線間距的比例
textord_spline_outlier_fraction0.1異常值行間距的比例
textord_skew_ile0.5頁面傾斜的漸層元素
文字偏移滯後0.02行累積偏差滯後
textord_linespace_iqrlimit0.2線空間的最大四分位數距/中位數
文字寬度限制8使斑點形成行的最大寬度
textord_chop_width1.5切割前的最大寬度
textord_expansion_factor1在 expand_rows 中,按以下因子擴展行
textord_overlap_x0.375良好重疊所需的線空間比例
textord_minxh0.25最小 x 高度對應的線寬比例
textord_min_linesize1.25* 初始線大小的 blob 高度
textord_excess_blobsize1.3如果 blob 使行達到這個大小,則建立新行。
textord_occupancy_threshold0.4鄰域比例
文字下劃線寬度2底線大小的倍數
textord_min_blob_height_fraction0.75最小斑點高度/頂部,以便將斑點頂部包含在 x 高度統計中
textord_xheight_mode_fraction0.4最小堆高以達到 x 高度
textord_ascheight_mode_fraction0.08最小堆高以達到所需高度
textord_descheight_mode_fraction0.08最小堆高以達到卸料高度
textord_ascx_ratio_min1.25最小容量/x高度
textord_ascx_ratio_max1.8最大容量/x高度
textord_descx_ratio_min0.25最小描述/x高度
textord_descx_ratio_max0.6最大描述/x高度
textord_xheight_error_margin0.1可接受的變異
oldbl_xhfract0.4計算中允許的估計分數
oldbl_dot_error_size1.26點陣的最大縱橫比
textord_oldbl_jumplimit0.15新分割區的 X 分數
pitsync_joined_edge0.75大塊內部的分散物用於切碎
pitsync_offset_freecut_fraction0.25免費切割的百分比
textord_tabvector_vertical_gap_fraction0.5垂直文字中允許的垂直間隙的最大平均斑點寬度比例
textord_tabvector_vertical_box_ratio0.5判定一條線垂直所需的匹配方框比例
textord_projection_scale0.2中段切球的叮噹率
textord_balance_factor1不平衡炭單元的Ding率
textord_wordstats_smooth_factor0.05平滑差距統計數據
textord_width_smooth_factor0.1平滑寬度統計
textord_words_width_ile0.4空間估計的 blob 寬度
textord_words_maxspace4x高度的倍數
textord_words_default_maxspace3.5最大可信的第三空間
textord_words_default_minspace0.6x高度的分數
textord_words_min_minspace0.3x高度的分數
textord_words_default_nonspace0.2x高度的分數
textord_words_initial_lower0.25最大初始簇大小
textord_words_initial_upper0.15最小初始簇間距
textord_words_minlarge0.75所需有效缺口比例
textord_words_pitchsd_threshold0.04音調同步閾值
textord_words_def_fixed0.016確定固定閾值
textord_words_def_prop0.09確定屬性的閾值
textord_pitch_rowsimilarity0.08相同情況下 x 高度的分數
words_initial_lower0.5最大初始簇大小
words_initial_upper0.15最小初始簇間距
words_default_prop_nonspace0.25x高度的分數
words_default_fixed_space0.75x高度的分數
words_default_fixed_limit0.6允許的尺寸偏差
textord_words_definite_spread0.3非模糊間距區域
textord_spacesize_ratiofp2.8最小空間/非空間比率
textord_spacesize_ratioprop2最小空間/非空間比率
textord_fpiqr_ratio1.5音調四分位距/間隙四分位距閾值
textord_max_pitch_iqr0.2Xh 分數噪聲
textord_fp_min_width0.5體面斑點的最小寬度
textord_underline_offset0.1要忽略的 x 的比例
ambigs_debug_level0單字元歧義的調試級別
分類調試級別0對調試等級進行分類
分類規範方法1歸一化方法…
匹配器調試級別0匹配器調試級別
匹配器調試標誌0匹配器調試標誌
分類學習調試級別0學習調試等級:
matcher_permanent_classes_min1永久課程的最低數量
matcher_min_examples_for_prototyping3可靠配置閾值
用於原型設計的充分範例匹配器5即使尚未發現歧義,也應啟用適應機制。
分類_適應_原型_閾值230自適應 0-255 期間良好原型的閾值
分類_適應_特徵_閾值230自適應0-255期間良好特徵的閾值
分類剪枝器閾值229分類修剪器閾值 0-255
分類剪枝乘數15類剪枝器乘數 0-255:
分類_cp_截止強度7修枝剪剪切強度:
分類整數匹配器乘數10整數匹配器乘數 0-255:
dawg_debug_level0設定為 1 顯示常規偵錯訊息,設定為 2 顯示更多詳細信息,設定為 3 顯示所有偵錯訊息
hyphen_debug_level0連字符單字的調試等級。
stopper_smallword_size2字典詞的大小將被視為非字典詞
stopper_debug_level0停止工具偵錯等級
tessedit_truncate_wordchoice_log10清單中最多保留多少個單字
最大置換嘗試次數10000排列組合過程中要考慮的不同字元選擇的最大數量。當使用者指定模式時,此限制尤其有用,因為過於通用的模式會導致搜尋演算法探索過多的選項。
修復未切碎的斑點1修復未被切碎的塊狀物
chop_debug0切割調試
分割長度10000分離式長度
相同距離2相同距離
砍伐最小輪廓點6輪廓上的最小點數
剪縫絨毛尺寸150seam_pile 中的最大接縫數
切內角-50最小內角彎曲
砍掉最小輪廓區域2000最小輪廓區域
截斷居中最大寬度90(較小)切碎塊的寬度,我們不在乎切碎塊是否靠近中心。
砍伐 x 和 y 重量3X/Y 長度重量
wordrec_debug_level0wordrec 的調試級別
wordrec_max_join_chunks4要關聯的碎片最大數量
segsearch_debug_level0SegSearch 偵錯級別
segsearch_max_pain_points2000佇列中儲存的最大痛點數量
segsearch_max_futile_classifications20每個資料區塊中未能找到更佳詞語選擇的痛點分類的最大數量。
language_model_debug_level0語言模型調試級別
language_model_ngram_order8字元n元語法模型的最大階數
language_model_viterbi_list_max_num_prunable10BLOB_CHOICEs 中記錄的每個維特比清單中可修剪條目(PrunablePath() 為 true 的條目)的最大數量
language_model_viterbi_list_max_size500BLOB_CHOICEs 中記錄的維特比列表的最大大小
language_model_min_compound_length3複合詞的最小長度
wordrec_display_segmentations0顯示分割
tessedit_pageseg_mode6頁面段模式:0=僅 OSD,1=自動+OSD,2=僅自動,3=自動,4=列,5=塊垂直,6=塊,7=行,8=單詞,9=單字圓圈,10=字符,11=稀疏文本,12=稀疏文本+OSD,13=原始行(值來自 tess,/publictypes.hser 中的枚舉)
tessedit_ocr_engine_mode2選擇要運作的 OCR 引擎(Tesseract、LSTM 或兩者都使用)。預設會載入並運行最精確的可用引擎。
頁面eg_devanagari_split_strategy0在梵文文檔進行頁面分割時,是否使用頂行分割過程。
ocr_devanagari_split_strategy0在對梵文文檔進行 OCR 時,是否使用頂行拆分流程?
雙向除錯0雙向調試級別
applybox_debug1偵錯等級
applybox_page0要套用方框的頁碼
tessedit_bigram_debug0用於二元語法糾錯的調試輸出量。
調試噪音消除0調試小輪廓的重新分配
噪音最大值8應用於某個圖形的最大變音符號
noise_maxperword16單字可套用的最大變音符號
debug_x_ht_level0重新估算調試
quality_min_initial_alphas_reqd2好詞中的字母
tessedit_tess_adaption_mode39用於 TES 的自適應決策演算法
多語言調試級別0列印多語言偵錯資訊。
段落調試級別0列印段落調試資訊。
tessedit_preserve_min_wd_len2僅保留 wd 超過此期限
crunch_rating_max10每通道評級中的調整長度
crunch_pot_indicators1需要多少潛在指標
crunch_leave_lc_strings4不要對包含長串小寫字母的單字進行壓縮
crunch_leave_uc_strings4不要對包含長串小寫字母的單字進行壓縮
長時間重複訓練3重複咀嚼單字
crunch_debug0正如它所說
fixsp_non_noise_limit1兩側各有幾個非噪音氣泡?
fixsp_done_mode1間距構成要素是什麼?
調試修復空間級別0上下文固定空間調試
x_ht_acceptance_tolerance8允許的最大偏差範圍為斑點頂部超出字體資料範圍
x_ht_min_change8在實際嘗試之前,xht 的最小變化
上標調試0下標和上標修復器的調試級別
jpg_質量85設定 JPEG 品質級別
使用者自訂DPI0指定輸入影像的DPI
min_characters_to_try50指定 OSD 期間嘗試的最小字元數
嫌疑等級99可疑標記水平
可疑的短詞2不要懷疑字典單字長度超過這個限制。
tessedit_reject_mode0拒絕演算法
tessedit_image_border2Rej blbs 靠近影像邊緣限制
最小正常 x 高度像素8拒絕任何小於或等於此值的 x-ht 或 eq。
tessedit_page_number-1-1 -> 所有頁面,否則指定要處理的頁面
tessedit_parallelize1盡可能並行運行
lstm_選擇模式2允許在 hOCR 輸出中包含備選符號選項。有效輸入值為 0、1 和 2。預設值為 0。輸入值為 1 時,每個時間步的備選符號選項都會被包含在內。輸入值為 2 時,備選符號選項將從 CTC 過程而非格中擷取。這些選項是按字元映射的。
lstm_choice_iterations5設定 lstm_選擇模式 中 Beamsearch 的級聯迭代次數。請注意,lstm_選擇模式 的值必須大於 0 才能產生結果。
tosp_debug_level0偵錯數據
tosp_enough_space_samples_for_median3或者我們應該用"均值"這個詞。
tosp_redo_kern_limit10重新估計行所需的樣本數
tosp_few_samples40無需預留間隙,只需預留一個大間隙即可作為工作台。
tosp_短行20使用證書時,無需預留太多證書空間。
tosp_sanity_method1如何避免犯傻
textord_max_noise_size7雜訊的像素尺寸
textord_baseline_debug0基線調試級別
textord_noise_sizefraction10最大值所佔尺寸的比例
textord_noise_translimit16正常斑點的過渡
textord_noise_sncount1超級規範區塊以保存行
使用歧義進行適應0利用歧義詞決定是否要改編某個角色
允許 blob 分部1使用可分割的塊狀物進行切碎
優先劃分0優先考慮塊狀分割而非切割
分類啟用學習1啟用自適應分類器
tess_cn_matching0字元歸一化匹配
tess_bn_matching0基線歸一化匹配
啟用自適應匹配器1啟用自適應分類器
分類_使用_預先調整的模板0使用預先適應的分類器模板
分類_儲存_已適配模板0將修改後的範本儲存到文件
啟用自適應調試器0啟用匹配調試器
分類非線性範數0非線性筆畫密度歸一化
禁用字元片段1不要將字元片段包含在分類器的結果中
分類除錯字元片段0為片段訓練打開圖形調試窗口
matcher_debug_separate_windows0使用兩個不同的視窗來調試匹配:一個用於原型,一個用於特徵。
分類_bln_numeric_mode0假設輸入為數字 [0-9]。
載入系統狗1載入系統單字 dawg。
載入頻率_dawg1載入常用字"dawg"。
載入無歧義的狗1載入明確的單字 dawg。
載入_punc_dawg1加載帶有標點符號的狗。
載入編號_dawg1用數字圖案加載狗。
加載雙字母狗1用特殊單字組合加載狗。
只使用第一個 uft8_step0計算對數機率時,僅使用給定字串的第一個 UTF-8 步長。
stopper_no_acceptable_choices0使 AcceptableChoice() 始終傳回 false。當需要探索所有細分時非常有用。
段非字母腳本0不要使用任何字母特有的技巧。對於草書或固有固定音高的腳本,請在 trainingdata 設定檔中將其設為 true。
儲存文件0儲存文件 Words
合併矩陣中的片段1合併評分矩陣中的碎片,合併後刪除碎片。
wordrec_enable_assoc1關聯器啟用
force_word_assoc0強制關聯器運行,無論 enable_assoc 的值為何。這用於中日韓語,因為中日韓語需要進行組件分組。
啟用1啟用斬波
垂直爬行0垂直蠕變
砍新縫堆1使用新的縫隙堆
假設固定音高字符段0在字符分割中加入固定音調啟發式方法
wordrec_skip_no_truth_words0僅對 BlamerBundle 中記錄為"真實"的字詞執行 OCR。
wordrec_debug_blamer0列印 blamer 調試訊息
wordrec_run_blamer0試圖找出錯誤的責任人
儲存備選方案1儲存在分割和分段搜尋過程中找到的備選路徑
language_model_ngram_on0啟用/停用字元n元語法模型
language_model_ngram_只使用第一個 uft8_step0計算對數機率時,僅使用給定字串的第一個 UTF-8 步長。
language_model_ngram_space_delimited_language1單字之間以空格分隔。
language_model_use_sigmoidal_certainty0使用S型曲線評分評估確定性
tessedit_resegment_from_boxes0從盒文件中取得分割和標籤
tessedit_resegment_from_line_boxes0將單字/行框文件轉換為字元框文件
tessedit_train_from_boxes0從帶框字元產生訓練數據
tessedit_make_boxes_from_boxes0從帶框字元產生更多框
tessedit_train_line_recognizer0將輸入拆分成行,並重新映射框(如果存在)。
tessedit_dump_pageseg_images0轉儲頁面分割過程中產生的中間影像
tessedit_do_invert1Try inverting the image in `LSTMRecognizeWord`
tessedit_ambigs_training0進行歧義培訓
tessedit_adaption_debug0產生並列印適配調試訊息
applybox_learn_chars_and_char_frags_mode0學習字元片段(如在特殊低曝光模式下所做的那樣)以及完整的字元。
applybox_learn_ngrams_mode0假設每個邊界框都包含 n 元語法。只學習那些輪廓在水平方向上重疊的 n 元語法。
tessedit_display_outwords0繪製輸出詞
tessedit_dump_choices0轉儲字元選擇
tessedit_timing_debug0列印計時統計數據
tessedit_fix_fuzzy_spaces1嘗試改進模糊空間
tessedit_unrej_any_wd0別費心考慮措詞的合理性了。
tessedit_fix_hyphens1雙連字符?
tessedit_enable_doc_dict1將單字加入文件詞典中
tessedit_debug_fonts0每個字元輸出字體訊息
tessedit_debug_block_rejection0區塊和行統計
tessedit_enable_bigram_correction1啟用基於二元詞詞典的糾錯功能。
tessedit_enable_dict_correction0啟用基於字典的單字糾錯功能。
啟用降噪1當小輪廓線幹擾版面分析,導致無法區分變音符號和雜訊時,應移除並根據情況重新分配它們。
tessedit_minimal_rej_pass10對第一遍輸出進行最小程度的剔除
tessedit_test_adaptation0測試適應性標準
測試點0測試點
基於段落文本1對帖子文字辨識進行段落檢測(更準確)
lstm_use_matrix1使用 LSTM 的評級矩陣/束搜索
tessedit_good_quality_unrej1減少對優秀文檔的拒稿
tessedit_use_reject_spaces1拒絕空格?
tessedit_preserve_blk_rej_perfect_wds1僅 rej 部分拒絕了塊拒絕中的單字
tessedit_preserve_row_rej_perfect_wds1行拒絕中只有部分拒絕的詞
tessedit_dont_blkrej_good_wds0使用分詞品質指標
tessedit_dont_rowrej_good_wds0使用分詞品質指標
tessedit_row_rej_good_docs1對優秀文檔應用程式拒絕規則
tessedit_reject_bad_qual_wds1拒絕所有劣質wds
tessedit_debug_doc_rejection0頁面統計
tessedit_debug_quality_metrics0輸出資料到調試文件
bland_unrej0未檢查的拒絕潛力
unlv_tilde_crunching0Mark v.bad words for tilde crunch
hocr_font_info0將字體資訊加入 hocr 輸出
hocr_char_boxes0將每個字元的座標加入 hocr 輸出中
crunch_early_merge_tess_fails1文字處理之前?
crunch_early_convert_bad_unlv_chs0提前取出~^?
crunch_terrible_garbage1正如它所說
crunch_leave_ok_strings1不要觸碰敏感的弦
crunch_accept_ok1在 okstring 中使用可接受性
crunch_leave_accept_strings0不要用鍋子碾碎敏感的弦
包含數值0小提琴字母
tessedit_prefer_joined_punct0獎勵標點符號連接
tessedit_write_block_separators0在輸出中寫入區塊分隔符
tessedit_write_rep_codes0編寫重複字元程式碼
tessedit_write_unlv0寫入 .unlv 輸出文件
tessedit_create_txt0寫入 .txt 輸出文件
tessedit_create_hocr0寫入 .html hOCR 輸出文件
tessedit_create_alto0寫入 .xml ALTO 文件
tessedit_create_lstmbox0寫入用於 LSTM 訓練的 .box 文件
tessedit_create_tsv0寫入 .tsv 輸出文件
tessedit_create_wordstrbox0以 WordStr 格式寫入 .box 輸出文件
tessedit_create_pdf0寫入 .pdf 輸出文件
textonly_pdf0建立僅包含一個不可見文字圖層的 PDF 文件
可疑約束_1Il0UNLV 保留 1Il 字元被拒絕
tessedit_minimal_rejection0僅拒絕測試失敗
tessedit_zero_rejection0不要拒絕任何事
tessedit_word_for_word0確保每個 WERD 輸出恰好包含一個單字
tessedit_zero_kelvin_rejection0什麼都不要拒絕
tessedit_rejection_debug0適配調試
tessedit_flip_0O1上下文 0O O0 翻轉
rej_trust_doc_dawg0在 11l 設定偵測器中使用 DOC dawg
rej_1Il_use_dict_word0使用字典測試
rej_1Il_trust_permuter_type1不要重複檢查
rej_use_tess_accepted1個體拒絕控制
rej_use_tess_blanks1個體拒絕控制
rej_use_good_perm1個體拒絕控制
rej_use_sensible_wd0擴展、切換、檢查
rej_alphas_in_number_perm0擴展、切換、檢查
tessedit_create_boxfile0輸出帶框的文字
tessedit_write_images0從IPE擷取影像
互動式顯示模式0以互動方式運行?
tessedit_override_permuter1根據 dict_word
tessedit_use_primary_params_model0在多語言模式下,使用主要語言的參數模型
textord_tabfind_show_vlines0調試行查找
textord_use_cjk_fp_model0採用中日韓固定螺距模型
poly_allow_detailed_fx0讓特徵提取器查看原始輪廓
tessedit_init_config_only0僅使用設定檔進行初始化。如果實例不用於 OCR,而僅用於佈局分析等用途,則此方法很有用。
textord_equation_detect0開啟方程式偵測器
textord_tabfind_vertical_text1啟用垂直偵測
textord_tabfind_force_vertical_text0強制使用垂直文字頁面模式
保留詞間空格0保留多個詞間空格
pageseg_apply_music_mask1偵測五線譜並移除交叉部分
textord_single_height_mode0腳本沒有 x 高度,因此請使用單模式
tosp_old_to_method0太空統計數據是否使用預切?
tosp_old_to_constrain_sp_kn0約束 old_to_method 的詞間和詞內間隙的相對值。
tosp_only_use_prop_rows1區塊統計資料是否適用於固定間距行?
tosp_force_wordbreak_on_punct0強制以標點符號斷詞,以斷開非空格分隔語言中的長行
tosp_use_pre_chopping0太空統計數據是否使用預切?
tosp_old_to_bug_fix0修復舊代碼中疑似的錯誤
tosp_block_use_cert_spaces1僅統計明顯的空間
tosp_row_use_cert_spaces1僅統計明顯的空間
tosp_narrow_blobs_not_cert1僅統計明顯的空間
tosp_row_use_cert_spaces11僅統計明顯的空間
tosp_recovery_isolated_row_stats1當憑證空間不足時,單獨使用行。
tosp_only_small_gaps_for_kern0更好的猜測
tosp_all_flips_fuzzy0將任何翻轉傳遞給上下文?
tosp_fuzzy_limit_all1不要將 kn->sp 模糊限制在表中
tosp_stats_use_xht_gaps1在 xht 間隙內使用 wd 煞車
tosp_use_xht_gaps1在 xht 間隙內使用 wd 煞車
tosp_only_use_xht_gaps0僅在 xht 間隙內用於 wd 煞車
tosp_rule_9_test_point0不要將 kn 更改為標點符號旁邊的空格
tosp_flip_fuzz_kn_to_sp1預設翻轉
tosp_flip_fuzz_sp_to_kn1預設翻轉
tosp_improve_thresh0啟用改進啟發式
textord_no_rejects0不要移除雜訊區塊
textord_show_blobs0顯示未分類的斑點
textord_show_boxes0顯示未分類的斑點
textord_noise_rejwords1拒絕類似噪音的詞語
textord_noise_rejrows1剔除噪音行
textord_noise_debug0調試行垃圾偵測器
classify_learn_debug_str類別 str 用於調試學習
使用者單字文件使用者提供的單字的檔案名稱。
用戶詞後綴tessdata 中使用者提供的單字的後綴。
使用者模式文件使用者提供的模式的檔案名稱。
使用者模式後綴tessdata 中使用者提供的模式的後綴。
輸出歧義詞文件字典中發現的歧義的輸出文件
待調試單字應該將哪個停止器偵錯資訊列印到標準輸出的單字
tessedit_char_blacklist不識別字元黑名單
tessedit_char_whitelist要辨識的字元白名單
tessedit_char_unblacklist要覆蓋 tessedit_char_blacklist 的字元列表
tessedit_write_params_to_file將所有參數寫入指定檔案。
應用框曝光模式.exp曝光值在影像檔案名稱中遵循此模式。圖像檔案名稱應採用 [lang].[fontname].exp [num].tif 格式。
chs_leading_punct('`"前導標點
chs_trailing_punct1).,;:?!第一行末尾標點符號
chs_trailing_punct2)'`"第二行末尾標點符號
輪廓_奇特%|非標準數量的輪廓
outlines_2ij!?%":;非標準數量的輪廓
數位標點符號.,標點符號。預計在數字範圍內。
未識別的字符|未識別斑點的輸出字符
ok_repeated_ch_non_alphanum_wds-?*=允許神經網路取消拒絕
衝突集 I_l_1Il1 []Il1衝突集
文件類型.tif檔案副檔名
tessedit_load_sublangs要使用此外掛程式載入的語言列表
頁面分隔符頁面分隔符號(預設為換頁控製字元)
分類字元規範範圍0.2字元歸一化範圍...
分類最高評分率1.5分類器評級之間的否決比率
分類最大確定性邊際5.5分類器確定性之間的否決差異
匹配器_良好閾值0.125精彩對決(0-1)
匹配器可靠自適應結果0精彩比賽(0-1)
匹配器完美閾值0.02完美匹配(0-1)
matcher_bad_match_pad0.15糟糕的比賽墊(0-1)
匹配器評分差距0.1新模板邊距(0-1)
匹配器平均雜訊大小12平均噪音斑點長度
匹配器聚類最大角度變化0.015原型聚類的最大角度變化
分類不合格垃圾懲罰0當非字母元素垂直偏離其預期的文字行位置時,將適用懲罰。
評分量表1.5評級縮放因子
確定性規模20確定性縮放因子
tessedit_class_miss_scale0.00390625未使用特徵的比例因子
分類適應剪枝因子2.5修剪效果不佳的結果比最佳結果還要糟糕得多
分類適應剪枝閾值-1分類適應剪枝因子 開始的閾值
分類字元片段垃圾確定性閾值-3將看起來不像完整字符的片段從訓練和適應過程中排除。
斑點大尺寸0.3最大大斑點尺寸
斑點評級懲罰10噪音處罰將加到最差評級。
x高度懲罰下標0.125如果單字中有下標或上標,則加罰分(0.1 = 10%),否則沒問題。
x高度懲罰不一致0.25如果 x 高度不一致,則加罰分(0.1 = 10%)。
詞段懲罰字典_常用詞1對於大小寫匹配良好且在給定語言中頻繁出現的單詞,得分倍數(越低越好)。
segment_penalty_dict_case_ok1.1區分大小寫的單字配對得分倍數(數值越低越好)。
segment_penalty_dict_case_bad1.3125單字匹配的預設得分倍數,可能存在大小寫問題(數值越低越好)。
segment_penalty_dict_nonword1.25對於與字典詞不符的字形片段分割結果,得分倍數(數值越低越好)。
段懲罰垃圾1.5對於大小寫錯誤、不在字典中且看起來像垃圾的字串,得分倍數(越低越好)。
確定性規模20確定性縮放因子
stopper_nondict_certainty_base-2.5非字典詞的確定性閾值
stopper_phase2_certainty_rejection_offset1拒絕確定性補償
stopper_certainty_per_char-0.5確定要為字典中每個大於小單字長度的字元添加內容。
stopper_allowable_character_badness3一個字中允許的最大確定性變化(以西格瑪為單位)
doc_dict_pending_threshold0使用待定字典的最差確定性
doc_dict_certainty_threshold-2.25可插入文件字典的詞語的最差確定性
tessedit_certainty_threshold-2.25良好的斑點限制
分割旋鈕0.5分離式長度調節
切重疊旋鈕0.9分割重疊調整
切碎中心旋鈕0.15分離式中心調節
切碎/鋒利度旋鈕0.06分割銳利度調整
切寬調整旋鈕5寬度變化調整
分割100OK 分割限制
切碎好_分裂50良好的分攤限額
segsearch_max_char_wh_ratio2最大字元寬高比

常見問題解答

如何使用OCR將圖像轉換為C#中的文本?

您可以使用IronOCR庫中的IronTesseract在C#中將圖像轉換為文本。首先,通過NuGet安裝庫,創建IronTesseract實例,然後使用Read方法處理圖像並提取文本。

如何在C#中配置OCR的語言設置?

在IronTesseract中,您可以通過配置Language屬性來設置OCR處理的語言。這允許您指定圖像上文本書寫的語言,以提高準確性。

IronTesseract可以處理文本提取和條碼閱讀嗎?

是的,IronTesseract可以處理文本提取和條碼閱讀。您可以通過將Configuration.ReadBarcodes屬性設置為true來啟用條碼閱讀,允許OCR引擎從掃描圖像中讀取條碼。

Tesseract配置變量在C# OCR中用於什麼?

IronTesseract中的Tesseract配置變量用於微調OCR過程。開發者可以使用IronOcr.TesseractConfiguration類來調整設置,如字符白名單、黑名單和其他處理參數。

如何在OCR處理過程中白名單字符?

要在IronTesseract的OCR處理中白名單字符,您可以設置Configuration.WhiteListCharacters屬性以僅包含希望被識別的字符,從而提高特定任務的OCR準確性。

如何在C#中解決常見的OCR問題?

使用IronTesseract在C#中處理常見的OCR問題可以通過調整Tesseract配置變量、確保正確的語言設置和檢查圖像質量來解決。使用Configuration屬性可以幫助優化OCR結果。

在IronOCR中哪裡可以找到Tesseract配置變量的文檔?

IronOCR中的Tesseract配置變量文檔可以在IronOcr.TesseractConfiguration類文檔中找到。它提供了變量的完整列表、默認值以及功能的解釋。

如何在C#中將OCR結果保存為可搜尋的PDF?

您可以使用IronTesseract在C#中將OCR結果保存為可搜尋的PDF,方法是利用SaveAsSearchablePdf方法在使用OCR引擎處理圖像後,方便PDF內的文本搜尋。

使用IronTesseract進行.NET OCR任務有哪些好處?

IronTesseract為.NET OCR任務提供了眾多好處,包括簡化的API、多語言支持、條碼閱讀功能以及豐富的配置選項,能根據特定需求調整OCR過程。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

審核人
Jeff Fritz
Jeffrey T. Fritz
首席程序经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席程序经理。他是 .NET Conf 虚拟会议系列的执行制作人,并主持“Fritz 和朋友”这一每周两次的开发者的直播节目,在节目上讨论技术并与观众一起编写代码。Jeff 撰写研讨会、主持演讲,并计划大型 Microsoft 开发者活动(包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP Summit)的内容。
準備好開始了嗎?
Nuget 下載 5,167,857 | Version: 2025.11 剛發表