跳過到頁腳內容
使用 IRONOCR

如何在 C# GitHub 專案中整合 OCR

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

如果你是正在 GitHub 上探索 Tesseract OCR 的 C# 開發人員,那麼你想要的可能不僅僅是程式碼。 你需要的是一個開箱即用、附帶可運行範例且背後有活躍社群支援的函式庫。 可靠的整合和完善的版本控制同樣重要。

這時IronOCR就派上用場了。 在本指南中,我將逐步向您展示如何將 IronOCR 整合到您的 GitHub 專案中,以便您可以輕鬆處理圖像和 PDF 中的文字辨識。 無論您的目標是抓取純文字、提取結構化的單字和行,還是產生可搜尋的 PDF 以進行存檔,IronOCR 都能滿足您的需求。

IronOCR 和 GitHub 入門指南

IronOCR 是一款出色的全面性 OCR 解決方案,可與基於 GitHub 的開發工作流程和 .NET Core 專案無縫協作。 與需要複雜配置的原始 Tesseract 實作不同,IronOCR 提供了一個精細的 API,讓您在幾分鐘內即可開始運行。 對於剛接觸光學字元辨識概念的人來說,IronOCR 的綜合文件涵蓋了從基本文字提取高級影像處理的所有內容。

首先透過 NuGet 套件管理器安裝 IronOCR:

Install-Package IronOcr

如何在 C# GitHub 專案中使用 IronOCR 整合 OCR:圖 1 - IronOCR NuGet 安裝頁面

!{--010011000100100101000010010100100100000101010010010110010101111101001110010101010101010101010101010101010101010 0100010111110100100101001101010100010000010100110001001100010111110100001001001100010011110010101010

IronOCR維護多個GitHub倉庫,其中包含範例和教學。 官方IronOCR 範例庫提供了真實世界的實現,而圖像轉文字教程庫則展示了您可以複製和修改的實際用例。 這些儲存庫展示了OCR 條碼讀取多語言支援PDF 處理功能。 由於 NuGet 上經常發佈軟體包,您將始終能夠存取最新的穩定版本。

如何在 C# GitHub 專案中使用 IronOCR 整合 OCR:圖 2 - 從 GitHub 倉庫到文字擷取的 OCR 處理流程基本概述

在 GitHub 上創建你的第一個 OCR 項目

讓我們建立一個適合在 GitHub 上分享的綜合性 OCR 應用程式。 在 Visual Studio(或您喜歡的 IDE)中,建立一個新的控制台應用程序,專案結構如下:

MyOcrProject/
├── src/
│   └── OcrProcessor.cs
├── images/
│   └── sample-invoice.jpg
├── .gitignore
├── README.md
└── MyOcrProject.csproj

以下是一個完整的 C# 程式碼範例,展示了 IronOCR 處理器的主要功能:

using IronOcr;
using System;
using System.IO;
namespace MyOcrProject
{
    public class OcrProcessor
    {
        private readonly IronTesseract _ocr;
        public OcrProcessor()
        {
            _ocr = new IronTesseract();
            // Configure for optimal accuracy
            _ocr.Configuration.ReadBarCodes = true;
            _ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
            _ocr.Language = OcrLanguage.English;
        }
        public void ProcessDocument(string imagePath)
        {
            using var input = new OcrInput();
            // Load and preprocess the image
            input.LoadImage(imagePath);
            input.Deskew();  // Straighten rotated images
            input.DeNoise(); // Remove digital noise
            input.EnhanceResolution(225); // Optimize DPI for OCR
            // Perform OCR
            var result = _ocr.Read(input);
            // Output results
            Console.WriteLine($"Confidence: {result.Confidence}%");
            Console.WriteLine($"Text Found:\n{result.Text}");
            // Process any barcodes found
            foreach (var barcode in result.Barcodes)
            {
                Console.WriteLine($"Barcode: {barcode.Value} ({barcode.Format})");
            }
            // Save as searchable PDF
            result.SaveAsSearchablePdf("output.pdf");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var processor = new OcrProcessor();
            processor.ProcessDocument("images/sample-invoice.jpg");
        }
    }
}
using IronOcr;
using System;
using System.IO;
namespace MyOcrProject
{
    public class OcrProcessor
    {
        private readonly IronTesseract _ocr;
        public OcrProcessor()
        {
            _ocr = new IronTesseract();
            // Configure for optimal accuracy
            _ocr.Configuration.ReadBarCodes = true;
            _ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
            _ocr.Language = OcrLanguage.English;
        }
        public void ProcessDocument(string imagePath)
        {
            using var input = new OcrInput();
            // Load and preprocess the image
            input.LoadImage(imagePath);
            input.Deskew();  // Straighten rotated images
            input.DeNoise(); // Remove digital noise
            input.EnhanceResolution(225); // Optimize DPI for OCR
            // Perform OCR
            var result = _ocr.Read(input);
            // Output results
            Console.WriteLine($"Confidence: {result.Confidence}%");
            Console.WriteLine($"Text Found:\n{result.Text}");
            // Process any barcodes found
            foreach (var barcode in result.Barcodes)
            {
                Console.WriteLine($"Barcode: {barcode.Value} ({barcode.Format})");
            }
            // Save as searchable PDF
            result.SaveAsSearchablePdf("output.pdf");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var processor = new OcrProcessor();
            processor.ProcessDocument("images/sample-invoice.jpg");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這個綜合範例展示了 IronOCR 的多項功能。 建構函式配置 OCR 引擎,啟用條碼讀取和自動頁面分割功能。 ProcessDocument 方法展示了影像預處理,包括校正傾斜(修正旋轉)、去雜訊(去除偽影)和解析度增強。 處理後,它提取帶有置信度分數的英文文本,識別條碼,並產生可搜尋的 PDF 。 開發者還可以輕鬆設定 IronOCR 來讀取其他語言,例如中文、西班牙語或法語,使其成為多語言 GitHub 專案的多功能選擇。 有關安裝其他語言包的參考資料,請點擊此處

如何在 C# GitHub 專案中使用 IronOCR 整合 OCR:圖 3 - 傾斜的輸入影像與擷取的輸出比較

在你的 .gitignore 檔案中加入以下內容:

# IronOCR runtime files
runtimes/
# Test images and outputs
*.pdf
test-images/
output/
# License keys
appsettings.*.json

為什麼選擇 IronOCR 來管理您的 GitHub 項目

IronOCR 為在 GitHub 上維護 OCR 專案的開發者提供了獨特的優勢。 該庫開箱即用,無需手動訓練或複雜的配置文件,即可達到 99.8% 的準確率,而不會使存儲庫變得雜亂。 支援125 多種語言,您的 GitHub 專案無需修改即可服務國際用戶。

IronOCR 非常靈活,能夠識別單字、行和整個段落,讓您可以控制從每次掃描中提取的細節量。

商業許可為公共儲存庫提供了法律上的明確性。 也就是說,您被明確允許在商業應用中包含 IronOCR。 內建影像預處理濾波器

IronOCR 的單一 DLL 架構意味著貢獻者可以複製您的儲存庫並立即開始開發,而無需像其他 OCR 解決方案那樣處理原生依賴項或平台特定的配置。

OCR專案的版本控制最佳實踐

在 GitHub 上管理 OCR 專案時,對於大型測試映像,請使用Git LFS

git lfs track "*.jpg" "*.png" "*.tiff"
git add .gitattributes
git lfs track "*.jpg" "*.png" "*.tiff"
git add .gitattributes
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用環境變數或使用者金鑰安全地儲存 IronOCR 許可證金鑰,切勿直接提交。 請按照IronOCR 許可證密鑰指南進行正確實施。 請在 README 檔案中說明支援的影像格式和預期精度。 在測試資料資料夾中包含範例影像,供貢獻者驗證 OCR 功能。 對於跨平台開發,請參閱IronOCR Linux 設定指南macOS 安裝說明

快速故障排除技巧

常見的安裝問題包括 Windows 系統缺少Visual C++ 可再發行元件包,以及 IronOCR 需要 2019 版本。 對於 Linux 部署,請確保已安裝 libgdiplus。 如果文字辨識效果不佳,請確認您的影像解析度至少為 200 DPI。 Stack Overflow上的 C# OCR 社群也為常見的 GitHub 專案問題提供了有用的解決方案。

如需詳細故障排除信息,請參閱IronOCR 故障排除指南。 IronOCR支援團隊為使用 GitHub 託管的 OCR 應用程式的授權使用者提供快速協助。

結論

IronOCR 透過其直覺的 API、全面的預處理和可靠的準確性,簡化了 C# GitHub 專案中的 OCR 實作。 從上面的程式碼範例入手,探索官方程式碼庫,建立能夠利用 GitHub 協作功能的強大文件處理應用程式。

下載IronOCR 的免費試用版,即可進行商業部署。

常見問題解答

OCR C# GitHub 教學的主要目的是什麼?

OCR C# GitHub 教學的主要目的是引導開發人員使用 IronOCR 在其 GitHub 專案中實作文字辨識。它包括代碼範例和版本控制的提示。

IronOCR 如何增強我在 GitHub 上的 C# 專案?

IronOCR 可提供強大的文字識別功能,讓您能夠高準確度地從圖像中擷取和處理文字,進而強化您在 GitHub 上的 C# 專案。

使用 IronOCR 進行文字辨識有哪些好處?

IronOCR 在文字識別方面有多項優點,包括易用性、高準確度以及與 C# 專案的無縫整合,使其成為處理影像文字資料的開發人員的理想選擇。

OCR C# GitHub 教學中是否有任何程式碼範例?

是的,OCR C# GitHub 教學包含程式碼範例,示範如何在您的專案中使用 IronOCR 實作文字辨識。

教程中提供了哪些版本控制技巧?

本教學提供版本控制技巧,以協助在整合 IronOCR 時有效管理專案中的變更,確保合作與專案維護的順暢。

我可以將 IronOCR 用於即時文字辨識應用程式嗎?

是的,IronOCR 可以用於即時文字識別應用程式,這要歸功於它高效的處理能力和對各種圖像格式的支援。

IronOCR 支援哪些影像格式的文字辨識?

IronOCR 支援多種圖像格式來識別文字,包括 JPEG、PNG、BMP、GIF 和 TIFF,確保與大多數圖像來源相容。

IronOCR 是否有試用版可供測試?

是的,IronOCR 提供試用版,讓開發人員在承諾購買之前,可以在專案中測試其功能和效能。

IronOCR 如何在文字辨識中處理不同語言?

IronOCR 支援多種語言的文字辨識,讓開發人員可以輕鬆地從各種語言的影像中擷取文字。

在 C# 專案中使用 IronOCR 的系統需求為何?

IronOCR 與 .NET Framework 和 .NET Core 相容,可輕鬆整合至 C# 專案中,無需大量系統資源。

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