使用 IRONOCR

如何在C#中創建OCR收據掃描器

發佈 2024年2月18日
分享:

這個教程旨在幫助初學者創建一個 OCR 收據掃描器 使用該 IronOCR在這份指南結束時,你將了解如何實現光學字符識別(OCR)C#中的API。 (光學字符識別) 將不同類型的收據文件轉換為可編輯和可搜索的數據,使用收據 OCR API。這項技術可以成為希望自動化費用管理並最小化手動數據輸入的企業的變革者。讓我們開始吧。!

如何在 C# 中創建 OCR 收據掃描器

  1. 在 Visual Studio 中建立一個 C# 主控台專案

  2. 使用 NuGet 套件管理器安裝 OCR 函式庫

  3. 使用 OcrInput 方法將收據載入程式

  4. 使用 Read 方法提取文字

  5. 在主控台上顯示提取的文字

先決條件

在我們進入程式碼部分之前,請確保您擁有以下內容:

  1. Visual Studio: 這將是我們的整合開發環境 (集成開發環境)在此我們將編寫和運行我們的C#代碼。

  2. IronOCR 庫:我們將使用IronOCR,一個可以輕鬆集成到C#應用程序的先進OCR庫。

  3. 範例收據:一個名為 Sample_Receipt.jpg 的收據圖像文件,我們將用其進行測試 OCR 實現.

如何在 C# 中創建一個 OCR 收據掃描器:圖 1 - 樣本收據圖片

第一步:設定專案

開啟 Visual Studio:找到桌面或應用程式目錄中的 Visual Studio 圖示,並雙擊它以開啟程式。

建立新專案:當 Visual Studio 開啟後,您會看到一個啟動視窗。點選「建立新專案」按鈕。如果您已經打開 Visual Studio 且沒有看到啟動視窗,可以從頂部選單中點選檔案 > 新增 > 專案來訪問這個選項。

選擇專案類型:在“建立新專案”視窗中,您會看到各種專案範本。在搜尋框中輸入「Console App」以過濾選項,然後選擇 Console App (.NET Core) 或控制台應用程式 (.NET框架), 取決於您的偏好和相容性。然後點擊 下一步 按鈕。

配置您的新項目:現在,您將看到一個標題為「配置您的新項目」的螢幕。

  • 在項目名稱字段中,輸入 OCRReceiptScanner 作為您的項目名稱。
  • 在位置字段中,選擇或確認您的項目將保存的位置。
  • 可選地,如果您希望解決方案名稱與項目名稱不同,您也可以指定一個解決方案名稱。
  • 填寫這些詳細信息後,點擊 下一步 按鈕。

額外信息:您可能會被要求選擇目標 .NET 框架。選擇最新版本。 (除非您有特定的相容性需求) 然後按一下 Create

第 2 步:整合 IronOCR

在使用 IronOCR 函式庫之前,我們需要將其包含在專案中。請按照以下步驟操作:

  1. 右鍵點擊您在方案總管中的專案。

  2. 選擇「管理 NuGet 套件」。

  3. 在 NuGet 套件管理器窗口中,您會看到 瀏覽已安裝更新合併 等多個標籤。點擊 瀏覽 標籤。

  4. 在搜索框中輸入 IronOcr。這是我們希望添加到專案中的函式庫名稱。按下 Enter 鍵進行搜索。

  5. 搜索結果將顯示 IronOCR 套件。它應該是您首先看到的結果之一。點擊它來選擇。

  6. 選擇 IronOCR 套件後,您會注意到右側顯示有關套件的一些信息,包括其描述和版本。該面板中還有一個 安裝 按鈕。

    如何在 C# 中建立 OCR 收據掃描器:圖 2 - 通過 NuGet 套件管理器安裝 IronOCR

  7. 點擊 安裝 按鈕。此操作可能會提示您查看更改,並顯示將與 IronOCR 一起包含的依賴項列表。查看更改和依賴項,如果一切正確,確認並繼續安裝。

第 3 步:配置專案

安裝 IronOCR 後,您的下一步是配置您的專案。以下是如何操作:

添加命名空間:在您的 Program.cs 文件的頂部包括以下命名空間:

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
VB   C#

配置設定:如果您有任何配置設定,例如 API 金鑰或授權金鑰,請務必包含它們。對於 IronOCR,您需要按照提供的代碼來設置授權金鑰:

License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key" ' replace 'License-Key' with your key
VB   C#

第四步:讀取收據

現在,讓我們編寫程式碼來讀取收據。

定義你的收據路徑:指定你想掃描的收據檔案路徑。

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
VB   C#

try-catch 區塊:使用 try-catch 區塊來實現錯誤處理。這可以幫助您管理在 OCR 過程中發生的任何異常。

try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
Try
	' OCR code will go here
Catch ex As Exception
	' Handle exceptions here
	Console.WriteLine($"An error occurred: {ex.Message}")
End Try
VB   C#

第五步:實施 OCR

在第五步中,我們深入探討應用程式的核心功能:實施 OCR 以讀取和解釋我們的收據數據。這涉及初始化 OCR 引擎、配置輸入、執行 OCR 操作以及顯示結果。

初始化 IronTesseract

這段程式碼的第一部分創建了一個 IronTesseract 類的實例:

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
VB   C#

通過創建IronTesseract的實例,我們基本上是在設置我們的OCR工具,準備執行文本識別任務。這就像在開車之前啟動引擎一樣。這個對象將被用來控制OCR過程,包括讀取輸入和從中提取文本。

設定 OCR 輸入

接下來,我們定義我們的 OCR 處理的輸入:

using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
Using input = New OcrInput(pdfFilePath)
	' OCR processing will go here
End Using
VB   C#

在此部分中,OcrInput 用於指定我們要處理的文件。pdfFilePath 是一個包含我們收據文件路徑的變量。通過將該變量傳遞給 OcrInput,我們是在告訴OCR引擎,「這是我要你讀取的文件」。using 語句是一種特殊的C#構造,確保 OcrInput 使用的資源 (如文件句柄) 在處理完成後適當釋放資源。這是一種高效管理資源的方法,確保應用程式運行順暢而不會造成不必要的記憶體使用。

執行 OCR

using 區塊內,我們對 ocr 實例調用 Read 方法:

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
VB   C#

Read 方法將以輸入文件路徑作為參數。這行程式碼將開始收據掃描。它將對給定的輸入文件進行 OCR,提取數據,並將其存儲到變量 result 中。我們可以使用從此方法提取的文本來執行任何文本操作。

輸出結果

最後,我們輸出由OCR處理識別的文字:

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
VB   C#

result 變量包含了 OCR 過程的輸出,result.Text 包含從收據中提取的實際文本。然後 Console.WriteLine 函數會將此文本顯示在控制台上。這允許您查看並驗證 OCR 過程的結果。以下是完整的 Program.cs 文件代碼:

using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports Microsoft.Extensions.Configuration
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		License.LicenseKey = "Your-License-Key"
		Dim pdfFilePath As String = "Sample_Receipt.jpg"
		Try
			Dim ocr = New IronTesseract()
			Using input = New OcrInput(pdfFilePath)
				Dim result = ocr.Read(input)
					Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			' Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
VB   C#

第六步:運行您的應用程式

  1. 建置專案:點擊「建置」選單,然後選擇「建置解決方案」。
  2. 運行專案:按 F5 或點擊「開始」按鈕來運行您的應用程式。

現在,您可以看到來自收據的文本輸出到控制台。這些文本表示從收據圖像中提取的數據。這就是我們使用 IronOCR 掃描收據的方式。這是一個使用 OCR 功能來從紙質收據中提取數據的簡單示例。這是一個非常通用的實現。您可以修改您的程式碼以匹配收據圖像的佈局。

如何在 C# 中建立 OCR 收據掃描器:圖 3 - 前一個代碼範例的輸出文本

在那之後,你可以使用我們在掃描收據後獲得的非結構化數據。我們可以從收據的特定部分獲取重要信息。或者,我們可以以更有條理的方式展示收據數據。我們可以使用IronOCR製作一個OCR收據掃描軟體應用程式。這將幫助我們提取收據欄位的準確數據。

結論

恭喜! 您已經使用C#和IronOCR成功建構了一個OCR收據掃描器。這個掃描器可以顯著提高數據提取的準確性,滿足各種商業需求,例如費用追踪、供應鏈管理等。再也不需要手動檢查掃描的收據並提取數據了。

IronOCR提供了一個 免費試用,允許用戶免費探索和評估其功能。對於那些希望在專業環境中整合和利用全部功能的用戶,授權起價為$749,提供全面的解決方案,以滿足強大的 OCR 發票掃描和數據提取需求。

請記住,這只是開始。您可以擴展此應用程序以支持各種文件類型,改善數據隱私,或集成其他功能,如特定欄位(例如稅額、日期、條目等)的發票識別。使用 OCR 技術,可能性是無限的,為更高效和智能的業務流程鋪平道路。祝編程愉快!

< 上一頁
如何使用C#中的OCR讀取身份證件
下一個 >
如何創建發票 OCR 解決方案

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 2,433,305 查看許可證 >