C#でIronOCRを使用してMICR小切手を読み取る方法
チェックを手動で処理すると時間がかかり、エラーが発生しやすくなります。 IronOCRは、MICR(磁気インク文字認識)ラインを正確に読み取る専用エンジンにより、このワークフローを合理化し、ルーティング番号、口座番号、その他の重要なデータの抽出を自動化します。
クイックスタート: チェック画像からMICRをOCR読み取り
IronOCRを使用してMICRラインを迅速に取得します。result.Text文字列を取得します。 最小限のセットアップで信頼性の高い財務データの抽出を望む開発者に最適です。
-
IronOCR をNuGetパッケージマネージャでインストール
-
このコード スニペットをコピーして実行します。
var input = new IronOcr.OcrInput(); input.LoadImage("micr.png", new IronSoftware.Drawing.Rectangle(125, 240, 310, 15)); string micrText = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.MICR }.Read(input).Text; -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronOCR を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- MICR小切手を読み取るためのC#ライブラリをダウンロードする
- OCRエンジンをインスタンス化する
Language設定をMICRに設定しますReadメソッドを使用してサンプル小切手画像からデータを抽出します- OcrResultプロパティにアクセスして、抽出されたデータを表示および操作します。
小切手の画像から MICR データを読み取るには?
IronOCRでMICRラインを読み取るのは簡単で直感的です。OcrLanguage.Micrに設定することから始めてください。 エンジンが正しい領域を読み取るためには、OcrInput上に矩形の境界を設定してMICRラインの位置を指定してください。
X座標とY座標、およびバウンディングボックスの高さと幅を選択し、Loadメソッドを呼び出す際に2番目のパラメーターとして矩形を渡します。 Readメソッドを呼び出すことにより、この定義された領域のみを処理します。 MICR 言語設定と特定の地域を組み合わせることで、IronOCR が関連する財務情報を正確に抽出することが保証されます。
MICR技術は、特殊な磁気インクと、0~9の数字と4つの特殊記号の合計14文字を正確に含む独自のフォント(北米ではE-13B)を使用します。 これらの記号には、ルーティング番号の境界を示すトランジット記号(F)が含まれます; 口座番号を他のデータから分離する記号(⑈); 金額記号 (↪So_244A) は、エンコードされた金額に使用されます; とダッシュ記号(⑉)は区切り記号として機能します。 このインクの磁気特性により、小切手が折りたたまれたり、スタンプが押されたり、わずかに損傷したりしても、確実に読み取ることができるため、MICRは大量の小切手処理に理想的です。
MICR小切手とはどのようなものですか?
サンプルチェック、ルーティングナンバー、口座番号、そしてチェック番号を示すMICRライン、MICR読み取りデモンストレーション用にラベル付け 
MICRラインにはどのような情報が含まれていますか?
小切手番号: この番号は、口座名義人の小切手帳から特定の小切手を一意に識別します。 個々の支払いを追跡し、取引記録を維持するための明確な参照として機能します。 自動処理システムでは、小切手番号は重複処理を防ぎ、照合手順を支援します。
ルーティング番号: トランジット記号⑆で囲まれたこの 9 桁のコードは、口座を保有する金融機関を識別します。 これは、決済機関が小切手を適切な銀行に送金するために使用する最初の情報です。 最初の4桁は連邦準備制度理事会(FRB)のルーティング・シンボル、次の4桁は金融機関、最後の1桁は検証用のチェックサムです。
口座番号: 資金が引き出される特定の顧客口座を識別します。 長さは銀行によって異なり、通常10~12桁です。 銀行は、口座番号構造内に内部コードまたは支店識別子を含めることができます。
MICRデータを抽出するにはどのようなコードが必要ですか?
:path=/static-assets/ocr/content-code-examples/how-to/read-micr-cheque.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Create a new instance of IronTesseract for performing OCR operations
IronTesseract ocr = new IronTesseract();
// Set the OCR language to MICR to recognize magnetic ink characters
// Must have MICR (IronOcr.Languages.MICR) installed beforehand
ocr.Language = OcrLanguage.MICR;
// Specify the file path of the input image containing MICR text
using (var input = new OcrInput())
{
// Specify the MICR of the image to focus on for OCR (coordinates in pixels)
var contentArea = new Rectangle(x: 215, y: 482, width: 520, height: 20);
input.LoadImage("micr.png", contentArea);
// Optional: Save the cropped area for verification
input.StampCropRectangleAndSaveAs(contentArea, Color.Aqua, "cropped.png");
// Run the OCR engine to read the MICR text from the input image
var result = ocr.Read(input);
// Output the recognized text to the console
Console.WriteLine(result.Text);
// Transit number is the first 7 characters of the MICR string
string transitNum = result.Text.Substring(0, 7);
// Routing number starts from the 8th character and is 11 characters long
string routingNum = result.Text.Substring(7, 11);
// Account number starts from the 22nd character to the end of the string
string accountNum = result.Text.Substring(22);
}
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Create a new instance of IronTesseract for performing OCR operations
Dim ocr As New IronTesseract()
' Set the OCR language to MICR to recognize magnetic ink characters
' Must have MICR (IronOcr.Languages.MICR) installed beforehand
ocr.Language = OcrLanguage.MICR
' Specify the file path of the input image containing MICR text
Using input As New OcrInput()
' Specify the MICR of the image to focus on for OCR (coordinates in pixels)
Dim contentArea As New Rectangle(x:=215, y:=482, width:=520, height:=20)
input.LoadImage("micr.png", contentArea)
' Optional: Save the cropped area for verification
input.StampCropRectangleAndSaveAs(contentArea, Color.Aqua, "cropped.png")
' Run the OCR engine to read the MICR text from the input image
Dim result = ocr.Read(input)
' Output the recognized text to the console
Console.WriteLine(result.Text)
' Transit number is the first 7 characters of the MICR string
Dim transitNum As String = result.Text.Substring(0, 7)
' Routing number starts from the 8th character and is 11 characters long
Dim routingNum As String = result.Text.Substring(7, 11)
' Account number starts from the 22nd character to the end of the string
Dim accountNum As String = result.Text.Substring(22)
End Using
コードは、MICR 小切手処理の完全なワークフローを示しています。 このコードを実行する前に、NuGet経由でMICR言語パックがインストールされていることを確認してください。 OcrInputクラスは画像の読み込みと前処理のための強力なメソッドを提供しますが、RectangleパラメーターはMICRラインの位置を正確にターゲットにすることを可能にします。
どのような結果が期待できますか?
上の出力は、MICR小切手から得られた3つのセクション(通過番号、送金番号、口座番号)を示しています。 特殊なMICR記号が出力でどのように表現されているかに注目してください-これらの記号はコンソール出力で異なって表示される可能性のある特定のUnicode表現を持っているため、これは通常の動作です。
MICR OCR結果
OcrResultオブジェクトはスキャンに関する詳細な情報を提供します:
テキスト: OcrInputから抽出されたテキスト。 これには、MICR行のすべての文字と記号が含まれ、元の順序を維持します。
信頼度:すべての文字の平均の統計的な精度の信頼度を示し、1が最高、0が最低です。MICR読み取りでは、標準化されたフォント設計により、0.9を超える信頼度が一般的です。 OCR結果の信頼性追跡については、こちらをご覧ください。
ブロック、段落、行、単語:認識されるテキストの階層構造で、MICRでは通常、記号で区切られた複数の単語セグメントを持つ1行で構成されます。
BarCodeデータ:MICRを処理する際、IronOCRは同時に小切手上に存在するバーコードまたはQRコードを検出することができます。
正しいOCRリージョンを確認するにはどうすればよいですか?
MICR ラインの正しい座標を選択したことを確認するには、定義したContentArea を視覚化できます。 これを行う簡単な方法は、入力画像上に矩形を描き、StampCropRectangleAndSaveAsとして新しいファイルとして保存することです。 これにより、座標をデバッグして微調整し、最適なパフォーマンスを実現できます。
自分のRectangleの座標を見つけるには、MS Paintのような簡単な画像エディタを使用してください。 小切手の画像を開き、マウスをMICRラインの左上と右下の角に合わせ、(x,y)ピクセル座標をメモしてください。 次に、矩形のプロパティを計算できます: height = y2-y1。
より高度なリージョン選択テクニックについては、OCRリージョンターゲティングとPDFによるコンテンツエリアをご覧ください。
以下は、サンプルの小切手に指定された境界ボックスを描画した後の出力画像です。
出力
水色の四角形は、処理のために MICR ラインが正しく分離されたことを確認します。
パフォーマンス最適化のヒント
複数のチェックを処理する場合は、パフォーマンスを向上させるマルチスレッドの実装を検討してください。 IronOCRは並行処理を効率的に処理します:
:path=/static-assets/ocr/content-code-examples/how-to/read-micr-cheque-3.cs
// Process multiple cheques in parallel
var chequeFiles = Directory.GetFiles("cheques/", "*.png");
Parallel.ForEach(chequeFiles, file =>
{
using (var ocr = new IronTesseract { Language = OcrLanguage.MICR })
using (var input = new OcrInput())
{
input.LoadImage(file, micrRegion);
var result = ocr.Read(input);
ProcessMicrData(result.Text);
}
});
Imports System.IO
Imports System.Threading.Tasks
Imports IronOcr
' Process multiple cheques in parallel
Dim chequeFiles = Directory.GetFiles("cheques/", "*.png")
Parallel.ForEach(chequeFiles, Sub(file)
Using ocr As New IronTesseract With {.Language = OcrLanguage.MICR}
Using input As New OcrInput()
input.LoadImage(file, micrRegion)
Dim result = ocr.Read(input)
ProcessMicrData(result.Text)
End Using
End Using
End Sub)
よくあるトラブルシューティングのシナリオ
低品質スキャン: 低品質のチェック画像を扱う場合は、画像前処理フィルターを適用して可読性を高めます。 MICRフォントの特徴的な形状は、劣化した画像でも精度を維持するのに役立ちます。
誤った文字認識: 最新のMICR言語パックがインストールされていることを確認してください。 専用のMICR言語設定は、E-13Bフォント認識用に特別にトレーニングされています。
可変MICRラインの位置:銀行によって、MICRラインの位置が微妙に異なることがあります。 動的な領域検出を実装するか、異なるチェック形式用の座標を含む設定ファイルを管理することを検討してください。
関連する金融文書処理
IronOCRの機能は小切手処理にとどまりません。 包括的な財務ドキュメントの自動化のために、関連する機能をご覧ください:
IronOCRでMICR読み取りをマスターすることにより、金融文書処理の完全自動化への第一歩を踏み出し、手入力エラーを減らし、ワークフローを大幅に加速することができます。
よくある質問
MICRとは何ですか。なぜ小切手処理に重要なのですか。
MICR (Magnetic Ink Character Recognition) は、特殊な磁気インクと独自のフォントを使用して小切手に金融情報をエンコードする技術です。IronOCRの専門的なMICRエンジンは、ルーティング番号、口座番号、小切手番号などのエンコードされたデータを正確に読み取ることができ、通常であれば時間がかかり、エラーが発生しやすい手作業を自動化します。
MICRテキストを読み取るためのOCRエンジンの設定方法を教えてください。
IronOCRでMICRテキストを読むには、IronTesseractインスタンスのLanguageプロパティをOcrLanguage.MICRに設定する必要があります。これにより、小切手で使用されるE-13Bフォントを読み取るために特別に設計されたMICR文字認識アルゴリズムを使用するようにエンジンに指示します。
小切手のどこにMICRデータがあるかを正確に指定できますか。
はい、IronOCRではOcrInputに矩形の境界線を設定することにより、MICR線の正確な位置を指定することができます。これはバウンディングボックスの矩形の高さと幅とともにxとyの座標を選択して定義し、Loadメソッドを呼び出すときに2番目のパラメータとして渡します。
MICRエンコーディングにはどのような特殊文字が使用されていますか?
MICRは、0~9の数字と4つの特殊記号の合計14文字を使用します。これらには、ルーティング番号の境界を表すトランジット記号($)、口座番号を区切るオンス記号(⑈)、エンコードされた金額を表す金額記号(⑊)、セパレーターとしてのダッシュ記号(⑉)が含まれます。IronOCRはこれらすべてのMICR固有の文字を認識することができます。
小切手画像から MICR データを短時間で抽出できますか。
IronOCRを使えば、たった1行のコードでMICRデータを抽出することができます。言語をMICRに設定したIronTesseractインスタンスを作成し、MICR領域を指定した画像を読み込み、Read()を呼び出し、result.Textプロパティにアクセスするだけで、抽出されたMICR文字列を即座に得ることができます。
MICRラインから抽出できる財務情報の種類は?
IronOCRは、MICR行にエンコードされている重要な財務データ(銀行を特定するルーティング番号、特定の口座を特定する口座番号、個々の小切手を一意に特定する小切手番号など)を抽出することができます。この自動抽出により、金融文書処理が合理化されます。
IronOCRは既存のアプリケーションに統合できますか?
IronOCRはC#を使用して既存のアプリケーションに簡単に統合できるよう設計されており、開発者がソフトウェアにOCR機能を少ない手間で追加できるようにします。
ドキュメント管理でIronOCRを使用する利点は何ですか?
IronOCRを使用することで、スキャンされた文書を検索可能かつ編集可能なテキストに変換し、手作業によるデータ入力を減らし、文書のアクセス性を向上させることでワークフローを効率化します。
IronOCRはデータ精度をどのように向上させますか?
IronOCRはその高度な認識アルゴリズムと画像補正機能により、信頼性が高く正確なテキスト抽出プロセスを保証します。
IronOCRの無料トライアルを利用できますか?
はい、Iron SoftwareはIronOCRの無料トライアルを提供しており、ユーザーが購入決定をする前にその機能と能力をテストできます。

