IRONSOFTWAREHOME
USING IRONOCR

如何在 C# GitHub 專案中使用 IronOCR 實現 OCR

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年2月27日

在GitHub上尋找OCR解決方案通常會產生分散的文件、複雜的Tesseract配置以及多年未更新的項目。 對於需要從圖像和PDF中可靠提取文字的C#開發者來說,導航儲存庫生態系統可能會耗費許多時間,而更好的方法是用於編碼。 許多開源的光學字元識別項目需要手動管理二進制文件、下載tessdata文件以及進行特定平台的故障排除。

本教程展示如何使用IronOCR在C#項目中實現OCR功能,這是一個託管庫,消除了使用原始Tesseract封裝常見的配置開銷。 無論是構建文件處理管道還是在現有應用程式中新增文字識別,本指南提供已準備就緒的工作程式碼範例,適用於任何OCR C# GitHub項目。

如何開始使用IronOCR?

IronOCR通過NuGet提供一個託管的.NET庫,這使得將其整合到任何GitHub儲存庫中變得簡單明瞭。 與需要手動管理二進制文件和tessdata配置的開源Tesseract OCR封裝不同,IronOCR在內部處理這些依賴項,並在Windows、Linux、和macOS上立即可用。

該庫在GitHub上維護官方範例儲存庫,開發者可以克隆或參考這些範例。 這些範例展示了實際應用,包括圖像到文字轉換、多語言支持和PDF處理。 貢獻者可以在克隆後立即測試功能,無需進行任何額外設置。

要在Visual Studio中入門,通過NuGet套件管理器安裝IronOCR:

PM > Install-Package IronOcr

OCR C# GitHub: 實施文字識別與IronOCR: 圖像1 - 安裝

安裝後,此單一套件包含了所有進行OCR操作所需的內容。 該庫支持.NET Framework 4.6.2+、.NET Core 和 .NET 5 到 10,以提供最大項目型別的相容性。

如何從C#中的圖像格式中提取文字?

以下範例展示了如何使用IronOCR的IronTesseract類進行基本文字提取。 此OCR引擎可以閱讀各種圖像格式,包括PNG、JPG、JPEG、BMP、GIF和TIFF:

using IronOcr;

// Initialize the OCR engine
var ocr = new IronTesseract();

// Load and process an image
using var input = new OcrInput("document-scan.png");

// Perform OCR and retrieve results
var result = ocr.Read(input);

// Output the extracted text to console
Console.WriteLine($"Extracted Text:\n{result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");

IronTesseract類作為主要的OCR引擎,基於優化的Tesseract 5實現。 建立實例後,OcrInput物件可以從磁盤、URL或字節陣列中載入目標圖像。 Read方法處理輸入並返回OcrResult,其中包括提取的純文字和表示識別準確度的置信度百分比。 較高的置信度值(超過90%)通常表明來源文件清晰、格式良好。

OcrResult物件提供了對已識別內容的結構化存取。 除了純文字之外,開發者還可以存取單個單詞、行、段落和字元,以及其位置和置信度分數。 每個Word都包括邊界矩形的坐標,這對於需要精確文字定位資料的應用程式非常有價值,例如文件註解或表單字段提取。

輸入

OCR C# GitHub: 實施文字識別與IronOCR: 圖像2 - 範例輸入

輸出

OCR C# GitHub: 實施文字識別與IronOCR: 圖像3 - 主控台輸出

IronOCR還支持從流和字節陣列中載入圖像,這在接收文件上傳的Web應用程式中特別有用。 這意味着OCR處理可以完全在記憶體中發生,而無需將臨時文件寫入磁盤,從而在高通量環境中減少輸入輸出開銷。

OCR C# GitHub: 實施文字識別與IronOCR: 圖像4 - 功能

圖像預處理如何提高光學字元識別精度?

掃描文件通常會傾斜、噪音較多或解析度不佳。 IronOCR包含內建的預處理過濾器,在OCR引擎處理圖像之前糾正這些問題:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("skewed-receipt.jpg");

// Apply preprocessing filters to enhance scan quality
input.Deskew();                    // Straighten rotated images
input.DeNoise();                   // Remove digital artifacts
input.EnhanceResolution(225);      // Optimize DPI for OCR

var result = ocr.Read(input);
Console.WriteLine(result.Text);

Deskew方法自動檢測和糾正高達15度的圖像旋轉,處理了掃描儀上頁面略微偏中心的常見情況。 DeNoise濾鏡移除在拍攝文件或較舊掃描中常見的斑點和瑕疵。 EnhanceResolution將低DPI圖像上擴至200-300 DPI範圍,這是光學字元識別精度的最佳範圍。

這些濾鏡可以連接在一起並完全在記憶體中運行,無需臨時文件。 在許多情況下,應用多次預處理會顯著提高嚴重質量問題文件的文字識別結果,例如褪色的墨水、背景噪音或相機失真。 改善在低於150 DPI掃描或照明不均時拍攝的照片中特別明顯。

感興趣區域裁剪如何幫助性能?

對於只有一部分圖像包含相關文字的文件,定義裁剪區域可以減少處理時間和來自背景噪音的潛在誤報:

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput("invoice.png");

// Define crop region (x, y, width, height in pixels)
var cropArea = new CropRectangle(50, 100, 600, 300);
input.AddRegion(cropArea);

var result = ocr.Read(input);
Console.WriteLine(result.Text);

在處理結構化文件(例如發票或表單)時,鎖定特定區域特別有價值,因為文字字段佔據已知的位置。 此方法可以將OCR處理時間降低40-70%,具體取決於圖像中有多少部分不相關。

是否可以同時提取條形碼和QR碼及文字?

IronOCR能夠同時識別文字和掃描條形碼,在同一文件中。 這種雙重功能對於處理發票、運送標籤和庫存文件非常有價值:

using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;  // Enable barcode detection

using var input = new OcrInput("shipping-label.png");
var result = ocr.Read(input);

// Access extracted text
Console.WriteLine($"Text: {result.Text}");

// Access any barcodes found in the image
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"Barcode ({barcode.Format}): {barcode.Value}");
}

Barcodes集合包含每個檢測到的條形碼的值和格式型別。 支持的格式包括QR碼、Code 128、EAN-13、UPC、Data Matrix和PDF417。這種雙重能力消除了處理包含人類可讀文字和機器可讀程式碼文件時需要單獨的條形碼掃描庫的需求。

輸入

OCR C# GitHub: 實施文字識別與IronOCR: 圖像5 - 條形碼範例圖像

輸出

OCR C# GitHub: 實施文字識別與IronOCR: 圖像6 - 主控台條形碼文字輸出

對於倉庫和物流應用,將文字和條形碼提取結合成一次操作,減少了API調用,簡化了應用架構。 單次Read操作返回所有可識別的資料,無論該資料是印刷文字、手寫還是機器可讀程式碼。 OcrResult.Barcodes屬性公開一個型別化集合,因此後續程式碼可以迭代結果而無需格式特定的解析邏輯。

如何從掃描圖像生成可搜尋的PDF?

將掃描文件轉換為可搜尋的PDF,以實現文字選擇、複製和文件管理系統中的全文搜尋。 這適用於各種圖像格式作為輸入:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("scanned-contract.tiff");
var result = ocr.Read(input);

// Export as searchable PDF with invisible text layer
result.SaveAsSearchablePdf("contract-searchable.pdf");

SaveAsSearchablePdf方法嵌入與識別內容匹配的不可見文字層,保留原始文件外觀的同時,實現文字操作。 這產生適合存檔和企業文件管理系統的文件。 IronOCR還支持將結果匯出為HTML或JSON,以便與下游系統整合。

對於多頁文件,IronOCR單獨處理每頁,並將輸出組裝成單個文件。多幀的TIFF文件會自動處理,使掃描文件存檔的批量轉換變得簡單明瞭。 生成的PDF保留了原始掃描的視覺佈局,而嵌入的文字層使得每頁在任何PDF檢視器或文件管理平台中都完全可搜尋。

如何在多語言應用中使用IronOCR?

IronOCR支持超過125種語言,包括英語、西班牙語、法語、德語、中文、日語、阿拉伯語等。 語言包通過NuGet作為單獨的套件安裝,保持核心庫輕量化:

using IronOcr;

// Install-Package IronOcr.Languages.French
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.French;

using var input = new OcrInput("french-document.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);

對於在同一頁上包含多語言的文件,IronOCR支持同時載入多個語言模型。 這對於不需要按語言預先排序文件的國際化應用很有用,因為它們處理來自多個地區的文件。 每個語言包都與核心庫一起維護,並支持相同的預處理和輸出功能。

在GitHub項目中有關OCR的最佳實踐是什麼?

在GitHub上維護OCR項目時,一些組織決策可以提高貢獻者的體驗並改善長期的項目健康。 無論您是構建小型實用腳本還是大型企業文件處理服務,這些實踐都適用。

使用Git LFS儲存大型測試圖像,以避免儲存庫大小膨脹。標準Git歷史中的二進制資產會增加克隆時間和儲存成本,尤其是當測試資料集包括高解析度掃描時。 將許可證密鑰儲存在環境變數或GitHub Secrets中,絕不要在提交的C#程式碼中; 請參考許可證密鑰配置指南以獲取設置說明。

在專用test-data文件夾中包含範例圖像,以便貢獻者可以驗證OCR功能而無需自行尋找文件。 在README文件中記錄支持的圖像格式和.NET版本要求,以減少入門問題。 在CI流水線中使用GitHub Actions構建和運行測試,以確認庫在目標環境中正常運行。

對於GitHub Actions工作流程,IronOCR在Windows和Linux執行器上的容器化環境中運行。 在針對Ubuntu或其他非Windows執行器時,請參考Linux部署指南以獲取配置詳細資訊。

您的下一步是什麼?

IronOCR通過一個NuGet分發的庫將可靠的文字識別帶給C#的GitHub項目,該庫處理Tesseract配置、預處理、條形碼檢測和多語言支持,而無需外部的二進制依賴項。 本指南中的程式碼範例涵蓋了核心使用案例:基本文字提取、圖像預處理、條形碼掃描、可搜尋PDF建立和多語言處理。

要探索完整的功能集,開始免費試用,無時間壓力或信用卡要求。 準備好投入生產部署時,查看許可選項,涵蓋個人開發者到企業團隊。

相關資源以擴展您的知識:

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立