使用 IRONOCR 如何在 C# 中創建字符識別 Kannapat Udonpant 更新:2026年1月18日 下載 IronOCR NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 光學字元辨識(OCR)技術可以將文字轉換為機器可讀的數位格式。 掃描文件(例如發票或收據)時,電腦會將其儲存為影像檔案。但是,使用普通文字編輯器無法編輯、搜尋或統計掃描影像中的文字。 OCR 可以處理圖像,提取文本,並將其轉換為電腦可以讀取的文本格式。 這使得可以從各種來源提取文本,包括 PDF 文件和其他掃描圖像。 此外,OCR 功能不僅限於簡單的文字擷取,還包括主要圖像格式和 PDF 文件,並將它們轉換為可搜尋的 OCR 資料。 在 C# 中,開發人員可以透過各種函式庫來利用 OCR 的強大功能,其中之一就是Iron Software出品的強大函式庫IronOCR 。 在本教程中,我們將探索 OCR 的基礎知識,並示範如何使用IronOCR在 C# 中高效地執行字元辨識。 How to create Character Recognition in C 在 Visual Studio 中建立一個全新的 C# 項目,並為此項目命名。 安裝IronOCR .NET庫並將其包含在專案資料夾中。 利用IronOCR Tesseract 從圖像中讀取文字。 利用IronOCR 的進階功能讀取影像中的文字。 IronOCR讀取操作的效能調優。 IronOCR入門指南 IronOCR是由Iron Software開發的 C# 函式庫,提供進階 OCR 功能。 它能夠從圖像、PDF 和掃描文件中準確提取文字。 在深入程式碼之前,請確保您的專案中已安裝IronOCR 。 Iron Software的IronOCR的主要功能 改進的 Tesseract OCR 引擎 IronOCR透過提高準確性和速度,提升了廣泛使用的 Tesseract OCR 引擎的功能。 它為從各種來源(包括圖像、PDF 和各種文件格式)中提取文字提供了一個強大的解決方案。 廣泛的語言覆蓋範圍 IronOCR支援超過 125 種語言,能夠很好地處理多語言需求,是需要語言多樣性的應用的理想選擇。 多種輸出選擇 提取的文字可以方便地輸出為純文字或結構化數據,以便無縫整合到後續處理流程中。 此外, IronOCR還支援直接從影像輸入建立可搜尋的 PDF。 跨平台適應性 IronOCR專為與 C#、F# 和 VB .NET相容而設計,可在各種.NET環境中無縫運行,包括 8、7、6、Core、Standard 和 Framework 版本。 利用 Tesseract 5 IronOCR利用 Tesseract 5 的強大功能,針對.NET生態系統進行了精細調整,以實現最佳效能。 基於區域的OCR功能 使用IronOCR,使用者可以精確定義文件中的特定區域,從而實現有針對性的 OCR 處理。 該功能透過將處理能力集中在最需要的地方來提高準確性和效率。 影像預處理工具 該庫提供了一系列影像預處理功能,例如去傾斜和降噪。 即使處理不完美的來源影像,這些工具也能確保獲得優異的結果,最終提升整體 OCR 體驗。 現在,我們將開發一個演示應用程序,利用IronOCR從圖像中讀取文字。 先決條件 Visual Studio:確保您已安裝Visual Studio或任何其他 C# 開發環境。 NuGet套件管理器:確保NuGet存在於您的專案中,以便管理套件。 步驟 1:在 Visual Studio 中建立一個新的 C# 項目 首先,讓我們使用 Visual Studio 建立一個新的控制台應用程序,如下所示。 請在下方提供物品名稱和地點。 選擇專案所需的.NET版本。 點選"建立"按鈕建立新項目。 步驟 2:安裝IronOCR庫並將其整合到您的專案中 IronOCR可以在NuGet套件管理器控制台中找到,如下所示。 使用提供的命令安裝軟體包。 使用 Visual Studio NuGet套件管理器,搜尋IronOCR並將其安裝到您的專案資料夾中。 安裝完成後,該應用程式即可使用IronOCR從圖像中讀取文字。 步驟 3:使用IronOCR Tesseract 從圖像中讀取文本 IronOCR是唯一提供 Tesseract 5 OCR 功能的.NET函式庫。 目前,它是所有程式語言中最複雜的 Tesseract 5 函式庫。 IronOCR將 Tesseract 5 無縫整合到各種.NET環境中,包括 Framework、Standard、Core、Xamarin 和 Mono,確保在整個生態系統中得到全面支援。 請將以下圖像檔案作為輸入。 現在,讓我們看看如何讀取此圖像檔案中的文字。 using IronOcr; public class Program { public static void Main(string[] args) { var ocrTesseract = new IronTesseract(); using var ocrInput = new OcrInput(); ocrInput.LoadImage(@"sample1.png"); var ocrResult = ocrTesseract.Read(ocrInput); Console.WriteLine(ocrResult.Text); } } using IronOcr; public class Program { public static void Main(string[] args) { var ocrTesseract = new IronTesseract(); using var ocrInput = new OcrInput(); ocrInput.LoadImage(@"sample1.png"); var ocrResult = ocrTesseract.Read(ocrInput); Console.WriteLine(ocrResult.Text); } } $vbLabelText $csharpLabel 程式碼解釋 IronTesseract 實例:我們先建立一個 IronTesseract 實例來執行 OCR 操作。 2.載入圖像:我們將範例圖像載入到 OcrInput 物件中。 3.讀取文本:讀取圖像中的文本,並將結果印到控制台。 輸出 步驟 4:利用IronOCR 的進階功能讀取影像中的文本 IronTesseract.Configuration 物件允許進階使用者存取 C#/. .NET中的底層 Tesseract API,從而實現詳細的設定配置,以進行微調和最佳化。 以下是一些進階配置選項。 語言選擇 您可以使用 Language 屬性指定 OCR 的語言。 例如,要將語言設定為英語,請使用: IronTesseract ocr = new IronTesseract(); ocr.Language = OcrLanguage.English; IronTesseract ocr = new IronTesseract(); ocr.Language = OcrLanguage.English; $vbLabelText $csharpLabel 頁面分段模式 PageSegmentationMode 決定 Tesseract 如何分割輸入影像。 選項包括 AutoOSD、SingleBlock、SingleLine 等。 例如: ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd; ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd; $vbLabelText $csharpLabel 自訂 Tesseract 變數 您可以透過設定特定變數來微調 Tesseract。 例如,要停用並行化: ocr.Configuration.TesseractVariables["tessedit_parallelize"] = false; ocr.Configuration.TesseractVariables["tessedit_parallelize"] = false; $vbLabelText $csharpLabel 角色白名單和黑名單 使用 WhiteListCharacters 和 BlackListCharacters 來控制 Tesseract 識別哪些字元。 例如: ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; ocr.Configuration.BlackListCharacters = "`ë|^"; ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; ocr.Configuration.BlackListCharacters = "`ë|^"; $vbLabelText $csharpLabel 其他配置變數 探索其他 Tesseract 配置變量,根據您的需求自訂行為。 例如: ocr.Configuration.TesseractVariables["classify_num_cp_levels"] = 3; ocr.Configuration.TesseractVariables["textord_debug_tabfind"] = 0; // ... (more variables) ocr.Configuration.TesseractVariables["classify_num_cp_levels"] = 3; ocr.Configuration.TesseractVariables["textord_debug_tabfind"] = 0; // ... (more variables) $vbLabelText $csharpLabel 現在讓我們嘗試使用進階設定解碼同一張影像。 using IronOcr; public class Program { public static void Main() { Console.WriteLine("Decoding using advanced features"); var ocrTesseract = new IronTesseract() // Create instance { Language = OcrLanguage.EnglishBest, // Configure best English language Configuration = new TesseractConfiguration() { ReadBarCodes = false, // Disable reading barcodes BlackListCharacters = "`ë|^", // Blacklisted characters WhiteListCharacters = null, // No whitelist, allow all PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd, TesseractVariables = null, // No custom variables used }, MultiThreaded = false, }; using var ocrInput = new OcrInput(); // Create a disposible ocr input object ocrInput.AddImage(@"sample1.png"); // Load the sample image var ocrResult = ocrTesseract.Read(ocrInput); // Read the text from the image Console.WriteLine(ocrResult.Text); // Output the text } } using IronOcr; public class Program { public static void Main() { Console.WriteLine("Decoding using advanced features"); var ocrTesseract = new IronTesseract() // Create instance { Language = OcrLanguage.EnglishBest, // Configure best English language Configuration = new TesseractConfiguration() { ReadBarCodes = false, // Disable reading barcodes BlackListCharacters = "`ë|^", // Blacklisted characters WhiteListCharacters = null, // No whitelist, allow all PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd, TesseractVariables = null, // No custom variables used }, MultiThreaded = false, }; using var ocrInput = new OcrInput(); // Create a disposible ocr input object ocrInput.AddImage(@"sample1.png"); // Load the sample image var ocrResult = ocrTesseract.Read(ocrInput); // Read the text from the image Console.WriteLine(ocrResult.Text); // Output the text } } $vbLabelText $csharpLabel 程式碼解釋 IronOCR配置:建立 IronTesseract( IronOCR主類別)的實例,並將其指派給變數 ocrTesseract。 配置設定已套用於 ocrTesseract: -語言:指定 OCR 的語言(在本例中為英語)。 -配置:一個 TesseractConfiguration 對象,允許進一步的自訂: ReadBarCodes: 停用讀取條碼。 BlackListCharacters: 指定要列入黑名單的字元(不識別的字元)。 WhiteListCharacters: 未指定白名單,允許所有字元。 PageSegmentationMode: 將頁面分段模式設定為"AutoOsd"。 TesseractVariables: 未使用自訂變數。 MultiThreaded: 停用多執行緒。 OCR 輸入和圖像載入:一個 using 塊創建一個一次性的 ocrInput 對象,類型為 OcrInput。 映像檔"sample1.png"已新增至ocrInput。 3.文字擷取:對 Read 呼叫 ocrTesseract 方法,傳入 ocrInput。 結果儲存在 ocrResult 變數中。 4.輸出:提取的文字使用 Console.WriteLine(ocrResult.Text) 列印到控制台。 輸出 步驟 5: IronOCR讀取操作的效能調優 使用IronOCR時,您可以存取各種影像濾鏡,這些濾鏡可以幫助在執行 OCR 之前預處理影像。 這些濾鏡可以優化影像質量,增強可視性,並減少雜訊或偽影。 它們有助於提高 OCR 操作的效能。 1.旋轉: 旋轉濾鏡可讓您將影像順時針旋轉指定的角度。若要逆時針旋轉,請使用負數。 2.傾斜: Deskew 濾鏡可以校正影像傾斜,確保文字保持直立和正交。 這對於 OCR 尤其有用,因為 Tesseract 在掃描方向正確的情況下表現最佳。 3.規模: 縮放過濾器會按比例縮放 OCR 輸入頁面。 4.二值化: 二值化濾鏡會將每個像素轉換為黑色或白色,沒有中間色。 在文字與背景對比度非常低的情況下,它可以提高 OCR 效能。 5.轉換為灰階: ToGrayScale 濾鏡將每個像素轉換為灰階色調。 雖然不太可能顯著提高 OCR 的準確率,但可能會提高速度。 6.反轉: 反轉濾鏡會反轉顏色-白色變成黑色,黑色變成白色。 7.替換顏色: ReplaceColor 濾鏡會根據一定的閾值,將影像中的特定顏色替換為另一種顏色。 8.對比: 對比度濾鏡會自動提高對比度。它通常可以提高低對比度掃描影像的OCR速度和準確性。 9.擴張和侵蝕: 這些高階形態學濾波器可以操縱影像中的物體邊界。 膨脹操作會在物件邊界新增像素。 腐蝕操作會從物件邊界移除像素。 10.磨利: 銳利化濾鏡可銳利化模糊的 OCR 文檔,並將 alpha 通道展平為白色。 11.降噪: 降噪濾波器可以去除數位雜訊。在預期會出現噪音的場合使用它。 12.深度清除背景雜訊: 只有在已知文件背景噪音極大時才應使用此強背景噪音消除濾波器。 它可能會降低對乾淨文件的 OCR 準確率,並且會佔用大量 CPU 資源。 13.增強解析度: EnhanceResolution 濾鏡可以提高低品質影像的解析度。 由於有自動解析度處理機制,所以通常不需要這樣做。 以下是如何在 C# 中使用IronOCR應用濾鏡的範例: var ocr = new IronTesseract(); var input = new OcrInput(); input.LoadImage("sample.png"); input.Deskew(); var result = ocr.Read(input); Console.WriteLine(result.Text); var ocr = new IronTesseract(); var input = new OcrInput(); input.LoadImage("sample.png"); input.Deskew(); var result = ocr.Read(input); Console.WriteLine(result.Text); $vbLabelText $csharpLabel 常用OCR應用 1.文件數位化: OCR 廣泛用於將掃描的紙本文件(如發票、收據、表格和合約)轉換為數位格式。 數位化流程簡化了文件的儲存、檢索和管理,減少了紙本文件的堆積,提高了效率。 2.資料擷取: OCR 可以從掃描的文件、影像和 PDF 中提取文字和資料。 提取出的資料可用於自動資料輸入、內容分析、索引以及整合到資料庫或業務系統中。 3.圖像中的文本識別: OCR 技術可以從印刷文件和圖像中提取文本,用於索引和搜尋。 這項功能被應用於各種領域,包括擴增實境、基於影像的搜尋引擎和翻譯服務。 4.自動車牌辨識 (ALPR): ALPR 系統利用 OCR 從安裝在交通監控、停車管理、收費和執法應用中的攝影機擷取的影像或視訊串流中讀取車牌號碼。 5.無障礙解決方案: OCR 在為視障人士創建無障礙內容方面發揮著至關重要的作用。 透過將圖像或文件中的文字轉換為語音或點字,OCR 有助於使殘疾人能夠獲取資訊。 6.身分驗證: OCR 技術應用於身分驗證流程,例如掃描和處理護照、駕駛執照和身分證等身分證明文件。 它有助於驗證文件的真實性,並提取相關資訊以進行身份驗證。 7.銀行與金融: OCR 在銀行和金融領域用於執行諸如讀取支票、處理發票、轉換現有 PDF 文件、從財務報表中提取數據以及自動化基於文檔的工作流程等任務,以提高財務運營的準確性和效率。 8.自動翻譯: OCR 技術被整合到翻譯工具和語言學習應用程式中,用於將印刷文字從一種語言轉換為另一種語言。 使用者可以使用設備捕獲文本,OCR 技術可以即時將其翻譯成所需的語言。 9.檔案和歷史文獻保存: OCR 用於將檔案資料和歷史文獻數位化,以數位格式保存它們,以便將來訪問、研究和分析,同時確保寶貴文化遺產的保存。 許可證要求 IronOCR 。 請提供以下訊息,以便將密鑰發送到您的郵箱。 取得金鑰(無論是透過購買或免費試用)後,請按照以下步驟使用該金鑰。 設定您的許可證密鑰:使用此代碼設定您的IronOCR許可證密鑰。 在應用程式啟動時(使用IronOCR之前),新增以下程式碼行: IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"; IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"; $vbLabelText $csharpLabel 全域應用程式金鑰(Web.Config 或 App.Config):若要將金鑰全域套用至您的應用程序,請使用設定檔(Web.Config 或 App.Config)。 將以下金鑰新增至您的 appSettings: <configuration> <appSettings> <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/> </appSettings> </configuration> <configuration> <appSettings> <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/> </appSettings> </configuration> XML 使用.NET Core appsettings.json:對於.NET Core應用程序,請在專案根目錄中建立一個 appsettings.json 檔案。 將"IronOCR"鍵替換為您的授權值: { "IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01" } 測試您的許可證金鑰:透過測試來驗證您的金鑰是否已正確安裝: bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01"); bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01"); $vbLabelText $csharpLabel 結論 總之, IronOCR為 OCR 提供了一個強大的解決方案,從 $799 開始。 使用IronOCR擁抱 OCR 的強大功能,在您的 C# 專案中開啟無限可能。 常見問題解答 我如何在 C# 中執行字元識別? 要在 C# 中執行字元識別,您可以使用 IronOCR。首先在 Visual Studio 中創建一個新的 C# 專案,然後通過 NuGet 包管理器安裝 IronOCR .NET 庫。使用 IronOCR 的類別和方法從圖片、PDF 或掃描文件中提取文字。 使用 IronOCR 進行文字提取有什麼好處? IronOCR 通過提高 Tesseract OCR 引擎的準確性和速度來增強文字提取功能。它支持超過 125 種語言,提供基於區域的 OCR 功能,並提供圖像預處理工具以優化 OCR 結果。 如何使用 IronOCR 優化 OCR 精準度? 要使用 IronOCR 優化 OCR 精準度,您可以使用如旋轉、去斜和對比調整等圖像預處理工具。您還可以微調配置,如語言選擇、頁面分段和字符白名單或黑名單設定。 OCR 技術的常見用途是什麼? OCR 技術常用於文件數位化、數據提取、圖片中的文本識別、自動讀取車牌號碼和無障礙解決方案。它還在銀行、身份驗證和檔案文件保存中發揮作用。 哪些環境可以支持 IronOCR? IronOCR 與多種 .NET 環境相容,包括 C#、F# 和 VB.NET。它支持 .NET 版本 8、7、6、Core、Standard 和 Framework,讓其對多種開發設置適用。 我如何處理 IronOCR 的授權? 要處理 IronOCR 的授權,請在應用程序啟動階段使用 IronOcr.License.LicenseKey 屬性應用許可證金鑰。或者,您可以在 Web.Config 或 App.Config 檔案中全局配置它,或者在 .NET Core 應用程序的 appsettings.json 中配置它。 IronOCR 提供了哪些高級功能? IronOCR 提供了高級功能,如語言選擇、頁面分段模式、自定義 Tesseract 變數以及字符白名單或黑名單設定。這些功能允許對 OCR 操作進行詳細的自訂和優化。 我可以使用 IronOCR 進行基於區域的 OCR 嗎? 可以,IronOCR 支持基於區域的 OCR,允許您指定圖片或文件的特定區域進行文字提取。此功能對於從複雜佈局中進行目標數據提取很有用。 我如何在我的 C# 專案中集成 OCR? 要在您的 C# 專案中集成 OCR,從 NuGet 安裝 IronOCR 庫,然後在專案中引用它。利用庫的方法實現 OCR 功能,讓您的應用程序可以處理圖片和掃描文件。 Kannapat Udonpant 立即與工程團隊聊天 軟體工程師 在成為軟件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人實验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因為他直接向编写大部分 IronPDF 使用的代碼的開發者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代碼或文檔時,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。 相關文章 發表日期 2026年3月8日 使用 C# 建立一個能真正提取有用資料的收據 OCR API 使用 IronOCR 在 C# 中建置收據 OCR API。透過附帶程式碼範例的逐步教學,學習如何從收據影像中精準且在地端提取結構化資料。 閱讀更多 更新2026年3月1日 OCR C# GitHub:使用 IronOCR 進行文字辨識 OCR C# GitHub 教學:使用 IronOCR 在您的 GitHub 專案中實現文本識別。包括程式碼範例和版本控制技巧。 閱讀更多 更新2026年3月1日 .NET OCR SDK:適用於 C# 的文字辨識函式庫 使用 IronOCR 的 .NET SDK 創建強大的 OCR 解決方案。簡單的 API,企業功能,跨平台支持的文檔處理應用。 閱讀更多 如何在 C# 中進行車輛註冊 OCR如何在 C# 中使用 OCR 讀取...
發表日期 2026年3月8日 使用 C# 建立一個能真正提取有用資料的收據 OCR API 使用 IronOCR 在 C# 中建置收據 OCR API。透過附帶程式碼範例的逐步教學,學習如何從收據影像中精準且在地端提取結構化資料。 閱讀更多
更新2026年3月1日 OCR C# GitHub:使用 IronOCR 進行文字辨識 OCR C# GitHub 教學:使用 IronOCR 在您的 GitHub 專案中實現文本識別。包括程式碼範例和版本控制技巧。 閱讀更多
更新2026年3月1日 .NET OCR SDK:適用於 C# 的文字辨識函式庫 使用 IronOCR 的 .NET SDK 創建強大的 OCR 解決方案。簡單的 API,企業功能,跨平台支持的文檔處理應用。 閱讀更多