使用 IRONOCR

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

發佈 2024年2月18日
分享:

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

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

  1. 在 Visual Studio 中創建一個 C# 控制檯項目

  2. 使用 NuGet 套件管理器安裝 OCR 函式庫。 \n3. 使用 OcrInput 方法將收據載入程式中。

  3. 使用 Read 方法提取文字5。將提取的文字顯示在控制台上。

先決條件

在進入編碼部分之前,請確保您已具備以下內容:

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

  2. IronOCR 函式庫:我們將使用 IronOCR,一個可以輕鬆整合到 C# 應用程式中的先進 OCR 函式庫。

    1. 範例收據:名為 Sample_Receipt.jpg 的收據圖像文件,我們將使用它來測試我們的OCR 實現.

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

步驟 1:設定專案

開啟 Visual Studio:在桌面或應用程式選單中找到 Visual Studio 圖示,並雙擊以開啟該程式。

建立新專案:一旦 Visual Studio 打開,您會看到一個啟動視窗。 按下「建立新專案」按鈕。 如果您已經開啟 Visual Studio 卻未看到啟動視窗,可以透過點擊頂部選單的「檔案 > 新增 > 專案」來進入。

選擇專案類型:在「建立新專案」視窗中,您將看到各種專案範本。 在搜索框中輸入「Console App」來篩選選項,然後選擇 Console App。(.NET Core)或控制台應用程式(.NET框架)根據您的偏好和相容性。 然後按 下一步 按鈕。

配置您的新專案:現在,您將看到一個標題為「配置您的新專案」的畫面。

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

    其他資訊: 您可能會被要求選擇目標 .NET Framework。 選擇最新版本(除非您有特定的相容性需求)然後按一下 Create

步驟 2:整合 IronOCR

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

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

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

  3. 在 NuGet 套件管理員視窗中,您會看到幾個分頁,比如 BrowseInstalledUpdatesConsolidate。 點擊 瀏覽 標籤。

  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#

步驟 4:讀取收據

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

定義您的收據路徑:指定您要掃描的收據檔案路徑。

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#

步驟 5:實施 OCR

在第5步,我們深入探討應用程式的核心功能:實施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#

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

  1. 建置專案:點擊「建置」選單,然後選擇「建置方案」。

  2. 執行專案:按下 F5 或點擊「開始」按鈕來執行您的應用程式。

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

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

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

結論

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

IronOCR 提供一個免費試用,允許用戶在無初始成本的情況下探索和評估其功能。對於那些希望在專業環境中集成並充分利用完整功能的用戶來說,授權價格從$749起,提供全面的解決方案以滿足強大OCR收據掃描和數據提取的需求。

記住,這只是個開始。 您可以擴展此應用程式以支援各種檔案類型,改進資料隱私,或整合額外功能,例如針對特定欄位如稅額、日期、行項等的收據識別。 利用OCR技術,可能性是無限的,為更高效和智能的商業流程開闢了道路。 編碼快樂!

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

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

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