跳過到頁腳內容
使用 IRONOCR

OCR C# GitHub:使用 IronOCR 實作文字辨識

在 GitHub 上搜尋 OCR 解決方案,往往會發現零碎的文件、複雜的 Tesseract 設定,以及很久沒有更新的專案。對於需要從圖片和 PDF 中抽取可靠文字的 C# 開發人員而言,瀏覽資源庫可能會耗費許多時間,而這些時間花在編碼上可能會更好。 許多開放原始碼的光學字元識別專案需要手動進行二進位管理、下載 tessdata 檔案以及 Windows 系統故障排除。

本教學示範如何使用 IronOCR在 C# 專案中實作 OCR 功能,IronOCR 是一個精煉的函式庫,可消除原始 Tesseract 實作中常見的令人頭痛的設定問題。 無論是建立文件處理管道,或是將文字識別功能加入現有的應用程式,本指南都提供了工作代碼範例,可隨時用於 OCR C# GitHub 專案。

是什麼讓 IronOCR 成為基於 GitHub 的 C# 程式碼專案的理想選擇? IronOCR 提供透過 NuGet 發佈的管理式 .NET 函式庫,可直接整合至任何 GitHub 儲存庫。 不像開放原始碼的 Tesseract OCR wrapper 需要手動管理二進位檔和 tessdata 設定,IronOCR 會在內部處理這些相依性,開箱即用。 圖書館在 GitHub 上維護 [ 官方範例儲存庫](https://github.com/iron-software/IronOcr.Examples),開發人員可以克隆和參考。 這些教學示範了真實世界的實作,包括[影像到文字的轉換](/csharp/ocr/tutorials/how-to-read-text-from-an-image-in-csharp-net/)、支援多國語言以及 PDF 處理。 貢獻者可以在克隆後立即測試功能。 要開始使用 Visual Studio,請透過 NuGet 套件管理員安裝 IronOCR: ```shell Install-Package IronOcr ``` ![OCR C# GitHub:使用 IronOCR 實現文字識別:圖像 1 - 安裝](/static-assets/ocr/blog/ocr-csharp-git/ocr-csharp-git-1.webp)。 安裝之後,這個單一套件就包含了在 Windows、Linux 和 macOS 環境下進行 OCR 作業所需的一切。 本庫支援 .NET Framework 4.6.2+、.NET Core 和 .NET 5-10,以達到最大的相容性。

如何用 C# 從影像格式中萃取文字? 以下範例使用 IronOCR 的 `IronTesseract` 類示範基本的文字擷取。 此 OCR 引擎可讀取各種影像格式,包括 PNG、JPG、JPEG、BMP、GIF 和 TIFF: ```cs 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% 以上) 通常表示原始文件乾淨且格式良好。 ### 輸入 ![OCR C# GitHub:使用 IronOCR 實現文字識別:圖像 2 - 樣本輸入](/static-assets/ocr/blog/ocr-csharp-git/ocr-csharp-git-2.webp)。 ### 輸出 ![OCR C# GitHub:使用 IronOCR 實現文字識別:圖像 3 - 控制台輸出](/static-assets/ocr/blog/ocr-csharp-git/ocr-csharp-git-3.webp)。 [OcrResult](/csharp/ocr/object-reference/api/IronOcr.OcrResult.html)物件提供結構化存取認可的內容。 除了純文字之外,開發人員還可以存取個別字詞、行、段落和字元,以及它們的位置和置信度分數。 每個 Word 都包含邊界矩形座標,對於需要精確文字位置資料的應用程式非常有用,例如文件註釋或表單欄位擷取。 ![OCR C# GitHub:使用 IronOCR 實現文字識別:圖像 4 - 功能](/static-assets/ocr/blog/ocr-csharp-git/ocr-csharp-git-4.webp)。

影像預處理如何提高光學字元識別的精確度? 掃描的文件通常會有偏差、雜訊或解析度不佳。 IronOCR 包含 [內建的預處理篩選器](/csharp/ocr/how-to/image-quality-correction/),可在 OCR 引擎處理影像之前修正這些問題: ```cs 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 的範圍,是光學字元識別的最佳選擇。 這些功能可以串連在一起並在記憶體中執行,而不需要臨時檔案。 在許多情況下,多重預處理可以大幅改善有嚴重品質問題的文件的文字辨識結果。

您可以在提取文字的同時提取 BarCode 和 QR 碼嗎? IronOCR 可以在同一個文件中同時辨識文字和 [掃描條碼](/csharp/ocr/how-to/barcodes/)。 這種雙重功能對於處理發票、運送標籤和庫存文件非常有價值: ```cs 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}"); } ``` 當 `ReadBarCodes` 啟用並設為 true 時,條碼偵測會啟動,而不會顯著影響處理時間。結果中的 `Barcodes` 集合包含每個偵測到的條碼的值和格式類型,支援 QR 碼、Code 128、EAN-13 和 UPC 等標準格式。 在處理同時包含人類可讀文字和機器可讀程式碼的文件時,此雙重功能可省去單獨使用 BarCode 掃描程式庫的需要。 ### 輸入 ![OCR C# GitHub:使用 IronOCR 實現文字識別:圖像 5 - 範例 BarCode 圖像](/static-assets/ocr/blog/ocr-csharp-git/ocr-csharp-git-5.webp)。 ### 輸出 ![OCR C# GitHub:使用 IronOCR 實現文字識別:圖像 6 - Console BarCode 文字輸出](/static-assets/ocr/blog/ocr-csharp-git/ocr-csharp-git-6.webp)。

如何從掃描影像產生可搜尋的 PDF? 將掃描的文件轉換為[searchable PDFs](/csharp/ocr/how-to/searchable-pdf/)可以進行文字選擇、複製和全文檢索。 此工作可使用各種影像格式作為輸入: ```cs using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput("scanned-contract.tiff"); var result = ocr.Read(input); // Export as searchable PDF - create new document from scan result.SaveAsSearchablePdf("contract-searchable.pdf"); ``` `SaveAsSearchablePdf` 方法嵌入了一個與已識別內容相匹配的隱形文字層,保留了原始文件的外觀,同時啟用了文字操作。 這可建立 PDF/A 相容的文件,適用於歸檔和企業文件管理系統。 您也可以將結果匯出為 JSON 格式,以便與其他系統整合。

GitHub 專案中的 OCR 有哪些最佳實作? 在 GitHub 上維護 OCR 專案時,請考慮這些建議以建立您的儲存庫: * **大型測試影像使用 Git LFS**,以避免儲存庫變大 * 將授權金鑰儲存於環境變數或 GitHub Secrets 中,切勿儲存於已提交的 C# 程式碼中 - 請參閱授權金鑰設定指南 * **在專用的測試資料夾中包含範例圖片**,以供撰稿人驗證 OCR 功能。 * **在 README 檔案中記錄支援的影像格式**,以設定明確的期望並回答常見問題 * **在 CI 管道中建立並執行測試**,以確保程式庫能在每個版本中正確運作 對於 GitHub Actions 工作流程,IronOCR 可在 Windows 和 Linux 上的容器化環境中執行。 針對非 Windows 執行者時,請參閱 Linux 部署指南,以瞭解組態細節。 IronOCR 也支援 [多國語言](/languages/),包括英文、西班牙文、法文、中文和其他 120 種以上的語言。 透過 NuGet 下載語言套件,以啟用英文以外語言的文字辨識功能。 這為您的系統所需的幾乎所有語言提供免費的 OCR 存取。 ## 結論 IronOCR 透過其直覺的 API、自動影像預處理以及可靠的跨平台支援,簡化了 C# GitHub 專案中的 OCR 實作。 上面的程式碼範例提供了建立文件處理應用程式的基礎,這些應用程式可與基於 GitHub 的開發工作流程順利整合。 本庫可與 .NET Framework、.NET Core 和現代 .NET 版本一起使用,為任何類型的專案提供廣泛的相容性。 [開始免費試用](trial-license)以探索完整功能,或[檢視授權選項](/csharp/ocr/licensing/)以進行生產部署。 ![OCR C# GitHub:使用 IronOCR 實現文字識別:圖像 7 - 授權](/static-assets/ocr/blog/ocr-csharp-git/ocr-csharp-git-7.webp)。

常見問題解答

什麼是 IronOCR?

IronOCR 是一個功能強大的 C# 光學字元辨識 (OCR) 庫,可簡化從圖像和 PDF 中提取文字的過程。

為什麼開發者應該選擇 IronOCR 而不是 GitHub 的 OCR 解決方案?

IronOCR 提供可靠且最新的 OCR 功能,無需複雜的配置或手動二進位管理,這與許多分散的 GitHub 專案不同。

IronOCR 可以同時處理影像和 PDF 文件嗎?

是的,IronOCR 旨在有效地從圖像和 PDF 文件中提取文字。

使用 IronOCR 時是否需要管理 tessdata 檔案?

不,IronOCR 消除了手動管理 tessdata 檔案的需求,簡化了 OCR 的實施過程。

IronOCR 與 Windows 系統相容嗎?

是的,IronOCR 與 Windows 系統完全相容,無需進行大量的故障排除即可提供無縫的安裝和使用體驗。

IronOCR 如何改善開發人員的工作流程?

IronOCR 簡化了 OCR 整合流程,使開發人員能夠更專注於編碼,而不是處理分散的文件和配置。

IronOCR是為哪種程式語言設計的?

IronOCR 專為 C# 開發人員設計,提供針對該語言生態系統量身定制的強大 OCR 解決方案。

Kannaopat Udonpant
軟體工程師
在成為软件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人实验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因为他直接向编写大部分 IronPDF 使用的代码的开发者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代码或文档时,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。