フッターコンテンツにスキップ
IRONOCRの使い方

C#でOCRレシートスキャナーを作成する方法

このチュートリアルは、C# の OCR API であるIronOCRを使用して、初心者がOCR レシート スキャナーを作成できるように設計されています。 このガイドを読み終えると、光学式文字認識 (OCR) を実装し、領収書 OCR API を使用してさまざまな種類の領収書ファイルを編集可能で検索可能なデータに変換する方法がわかります。 このテクノロジーは、経費管理を自動化し、手動によるデータ入力を最小限に抑えたいと考えている企業にとって、画期的な技術となる可能性があります。 さあ、始めましょう!

C#でOCR領収書スキャナーを作成する方法

  1. Visual Studio で C# コンソール プロジェクトを作成します。
  2. NuGet パッケージ マネージャーを使用して OCR ライブラリをインストールします。
  3. OcrInputメソッドを使用して領収書をプログラムに読み込みます。
  4. Readメソッドを使用してテキストを抽出します。
  5. 抽出したテキストをコンソールに表示します。

前提条件

コーディング部分に進む前に、次のものを用意してください。

  1. Visual Studio : これは統合開発環境 (IDE) であり、ここで C# コードを記述して実行します。
  2. IronOCR ライブラリ: C# アプリケーションに簡単に統合できる高度な OCR ライブラリである IronOCR を使用します。 3.サンプルレシート: OCR 実装のテストに使用するSample_Receipt.jpgという名前のレシート画像ファイル。

! C#でOCR領収書スキャナを作成する方法: 図1 - サンプル領収書の画像

ステップ 1: プロジェクトのセットアップ

Visual Studio を開く: デスクトップまたはアプリケーション メニューで Visual Studio アイコンを見つけてダブルクリックし、プログラムを開きます。

新しいプロジェクトを作成する: Visual Studio が開くと、起動ウィンドウが表示されます。 "新しいプロジェクトを作成"ボタンをクリックします。 Visual Studio を既に開いていて起動ウィンドウが表示されない場合は、上部のメニューから [ファイル] > [新規] > [プロジェクト] をクリックしてアクセスできます。

プロジェクト タイプを選択:"新しいプロジェクトの作成"ウィンドウに、さまざまなプロジェクト テンプレートが表示されます。 検索ボックスに"コンソール アプリ"と入力してオプションをフィルターし、好みと互換性に応じてコンソール アプリ (.NET Core) またはコンソール アプリ (.NET Framework) を選択します。 次に、 "次へ"ボタンをクリックします。

新しいプロジェクトを構成する: ここで、"新しいプロジェクトを構成する"というタイトルの画面が表示されます。

  • プロジェクト名フィールドに、プロジェクトの名前としてOCRReceiptScannerと入力します。
  • 場所フィールドでプロジェクトを保存する場所を選択または確認します。
  • オプションで、プロジェクト名とは異なるソリューション名を指定することもできます。
  • これらの詳細を入力した後、 "次へ"ボタンをクリックします。

追加情報:ターゲットの .NET Framework を選択するように求められる場合があります。 最新バージョンを選択し (特定の互換性要件がない限り)、 [作成]をクリックします。

ステップ2: IronOCRの統合

IronOCR ライブラリを使用する前に、それをプロジェクトに含める必要があります。 次の手順に従います。

  1. ソリューションエクスプローラでプロジェクトを右クリックします。 2."NuGet パッケージの管理"を選択します。
  2. NuGet パッケージ マネージャー ウィンドウには、 [参照][インストール済み][更新][統合]などのいくつかのタブが表示されます。 [参照]タブをクリックします。
  3. 検索ボックスに"IronOcr"と入力します。 これは、プロジェクトに追加するライブラリの名前です。 Enterキーを押して検索します。
  4. 検索結果に IronOCR ライブラリ パッケージが表示されます。 最初に表示される結果の 1 つになるはずです。 クリックして選択します。
  5. IronOCR パッケージを選択すると、右側のパネルにパッケージの説明やバージョンなどの情報が表示されます。 このパネルには"インストール"ボタンもあります。

C#でOCRレシートスキャナを作成する方法: 図2 - NuGetパッケージマネージャ経由でIronOCRをインストールする

  1. "インストール"ボタンをクリックします。 このアクションにより、変更を確認するように求められ、IronOcr とともに含まれる依存関係のリストが表示される場合があります。 変更と依存関係を確認し、すべてが正しいと思われる場合は、確認してインストールを続行します。

ステップ3: プロジェクトの構成

IronOCR をインストールしたら、次のステップはプロジェクトを構成することです。 1. Visual Studioを開き、"ツール">"NuGetパッケージマネージャー">"ソリューションのNuGetパッケージの管理"に移動します。

名前空間の追加: Program.csファイルの先頭に、次の名前空間を含めます。

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
$vbLabelText   $csharpLabel

構成設定: 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
$vbLabelText   $csharpLabel

ステップ4:領収書を読む

それでは、レシートを読み取るコードを書いてみましょう。

領収書へのパスを定義する: スキャンする領収書ファイルへのパスを指定します。

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

ステップ5: OCRの実装

ステップ 5 では、アプリケーションのコア機能である、レシートからデータを読み取って解釈するための OCR の実装について詳しく説明します。 これには、OCR エンジンの初期化、入力の構成、OCR 操作の実行、結果の表示が含まれます。

IronTesseractを初期化する

コードの最初の部分では、 IronTesseractクラスのインスタンスを作成します。

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

このセグメントでは、 OcrInputを使用して処理するファイルを指定します。 pdfFilePath 、レシートファイルへのパスを含む変数です。この変数をOcrInputに渡すことで、OCRエンジンに"読み取ってほしいファイルはこれです"と伝えます。using usingは、処理が完了したらOcrInputが使用するリソース(ファイルハンドルなど)が適切に解放されることを保証する特別なC#構文です。 これは、リソースを効率的に管理し、不要なメモリを使用せずにアプリケーションがスムーズに実行されるようにする方法です。

OCRを実行する

usingブロック内で、 ocrインスタンスのReadメソッドを呼び出します。

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
$vbLabelText   $csharpLabel

Readメソッドは、入力ファイルのパスをパラメーターとして受け取ります。 この行で領収書のスキャンが開始されます。 指定された入力ファイルの OCR を実行し、データを抽出して、変数resultに保存します。 このメソッドから抽出されたテキストを使用して、任意のテキスト操作を実行できます。

結果を出力する

最後に、OCR プロセスによって認識されたテキストを出力します。

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

result変数には OCR プロセスの出力が含まれ、 result.Textには領収書から抽出された実際のテキストが含まれます。 Console.WriteLine関数はこのテキストを取得してコンソールに表示します。 これにより、OCR プロセスの結果を確認して検証できます。 完全なProgram.csファイル コードは次のとおりです。

using IronOcr;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Set your IronOCR license key
        License.LicenseKey = "Your-License-Key";

        // Define the path to the receipt image
        string pdfFilePath = "Sample_Receipt.jpg";

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

            // Define the input file
            using (var input = new OcrInput(pdfFilePath))
            {
                // Perform OCR and get the result
                var result = ocr.Read(input);

                // Display the extracted text
                Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions and log them if necessary
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Set your IronOCR license key
        License.LicenseKey = "Your-License-Key";

        // Define the path to the receipt image
        string pdfFilePath = "Sample_Receipt.jpg";

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

            // Define the input file
            using (var input = new OcrInput(pdfFilePath))
            {
                // Perform OCR and get the result
                var result = ocr.Read(input);

                // Display the extracted text
                Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions and log them if necessary
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Set your IronOCR license key
		License.LicenseKey = "Your-License-Key"

		' Define the path to the receipt image
		Dim pdfFilePath As String = "Sample_Receipt.jpg"

		Try
			' Initialize the OCR engine
			Dim ocr = New IronTesseract()

			' Define the input file
			Using input = New OcrInput(pdfFilePath)
				' Perform OCR and get the result
				Dim result = ocr.Read(input)

				' Display the extracted text
				Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			' Handle exceptions and log them if necessary
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

ステップ6: アプリケーションの実行

1.プロジェクトをビルドします。"ビルド"メニューをクリックし、"ソリューションのビルド"を選択します。 2.プロジェクトを実行する: F5 キーを押すか、"開始"ボタンをクリックしてアプリケーションを実行します。

これで、領収書のテキストがコンソールに表示されます。 このテキストは、領収書画像から抽出されたデータを表します。 これは、IronOCR を使用して領収書をスキャンする方法です。 これは、OCR機能を使用して紙の領収書からデータを抽出する簡単な例です。非常に汎用的な実装です。 レシート画像のレイアウトに合わせてコードを変更できます。

! C#でOCRレシートスキャナを作成する方法: 図3 - 前のコード例からの出力テキスト

その後、レシートをスキャンして取得した非構造化データを活用できます。レシートの特定のセクションから重要な情報を取得できます。 または、領収書データをより整理された方法で表示することもできます。 IronOCR を使用して OCR レシートスキャン ソフトウェア アプリケーションを作成できます。 これにより、領収書フィールドの正確なデータを抽出できるようになります。

結論

おめでとうございます! C# と IronOCR を使用して OCR レシート スキャナーを構築できました。 このスキャナーは、経費追跡、サプライ チェーン管理など、さまざまなビジネス ニーズに合わせてデータ抽出の精度を大幅に向上させることができます。 スキャンした領収書を確認して手動でデータを抽出する必要がなくなります。

IronOCRは無料トライアルを提供しており、ユーザーは初期費用なしでその機能を実際に試用・評価できます。プロフェッショナルな環境であらゆる機能を統合・活用したいと考えている方には、 $799から始まるライセンスをご用意しており、堅牢なOCRレシートスキャンとデータ抽出のニーズに応える包括的なソリューションを提供します。

覚えておいてください、これはまだ始まりに過ぎません。 このアプリケーションを拡張して、さまざまなファイル タイプをサポートしたり、データのプライバシーを向上させたり、税額、日付、明細項目などの特定のフィールドの領収書認識などの追加機能を統合したりすることができます。 OCR テクノロジーにより可能性は広がり、より効率的でインテリジェントなビジネス プロセスへの道が開かれます。 コーディングを楽しんでください!

よくある質問

OCRレシートスキャナーとは何か、それが企業にどのように利益をもたらすか?

OCRレシートスキャナーは、光学文字認識技術を使用してレシート画像を編集可能で検索可能なデータに変換するツールです。これは、特に経費管理などの分野で、データ入力作業を自動化することでビジネスプロセスを大幅に向上させることができます。

C#でOCRレシートスキャナーをどのように作成できますか?

C#でOCRレシートスキャナーを作成するには、IronOCRライブラリを使用できます。まず、Visual StudioでC#コンソールプロジェクトを設定し、NuGetパッケージマネージャーを介してIronOCRをインストールし、レシートファイルでOCR機能を実装するためのチュートリアルに従います。

C#でOCRレシートスキャナーを設定するための前提条件は何ですか?

前提条件には、Visual Studioのインストール、IronOCRライブラリ、OCRプロセスをテストするためのサンプルレシート画像ファイルが含まれます。

C#プロジェクトにIronOCRライブラリをどのようにインストールしますか?

Visual StudioのNuGetパッケージマネージャーを使用してIronOCRライブラリをインストールできます。IronOCRを検索し、プロジェクトに追加してOCR機能にアクセスします。

OCRでのIronTesseractクラスの機能はどうなっていますか?

IronTesseractクラスは、IronOCRライブラリ内でOCRエンジンを初期化するために使用され、レシートの画像に対してテキスト認識タスクを実行できます。

C#でOCRプロセス中のエラーをどのように処理しますか?

OCRプロセス中のエラーは、C#コード内でtry-catchブロックを使用して処理できます。これにより、例外を管理し、問題に直面した場合でもアプリケーションがスムーズに実行されるようになります。

OCRレシートスキャナーの機能をどのように強化できますか?

さまざまなファイルタイプをサポートし、データのプライバシーを向上させるか、データ抽出の精度を向上させるためにフィールド特定の認識などの追加機能を統合することで、アプリケーションを拡張できます。

C#アプリケーションにOCR技術を統合するためのベストプラクティスは何ですか?

信頼できるライブラリ(例えば、IronOCR)を使用し、try-catchブロックでエラーを処理し、複数のレシートフォーマットに最適化することで、正確なデータ抽出を保証することがベストプラクティスです。

C#を使用してレシート画像をテキストに変換するにはどうすればよいですか?

C#のIronOCRライブラリを使用してレシート画像をテキストに変換できます。OcrInputクラスを使用して画像を指定し、IronTesseractクラスで処理してテキストを抽出します。

IronOCRのライセンスオプションにはどのようなものがありますか?

IronOCRは、OCR技術を必要とするさまざまなアプリケーションにアクセス可能にするために、プロフェッショナルな環境での拡張利用に手頃なライセンスオプションとともに、試用版を提供しています。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。