C#で画像の特定の OCR 領域を定義する方法
C# における画像の特定の領域からテキストを抽出するには、IronOCR の Rectangle オブジェクトを用いて y 座標、height を指定することによって正確な領域を定義し、それを LoadImage メソッドに渡して対象の OCR 処理を行います。
-
1Install IronOCR with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
using IronOcr; using IronSoftware.Drawing; // 1. Install IronOCR via NuGet: Install-Package IronOcr var ocr = new IronTesseract(); using var input = new OcrInput(); // 2. Create a Rectangle with coordinates var region = new Rectangle(x: 215, y: 1250, width: 1335, height: 280); // 3. Load image with region input.LoadImage("image.png", region); // 4. Extract text var result = ocr.Read(input); Console.WriteLine(result.Text);C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronOCR を使い始めましょう無料トライアル
多くの場合、請求書の合計金額やフォームの特定のフィールドなど、画像の小さな部分からテキストを抽出するだけで済みます。 ドキュメント全体をスキャンするのは非効率的であり、無関係なテキストをキャプチャすることでエラーが発生する可能性があります。
IronOCR を使用すると、スキャンする正確な長方形領域を指定することにより、精度、パフォーマンス、正確性を向上させることができます。 このガイドでは、特定の OCR 領域を定義し、そこからテキストを抽出し、OCR タスクに対して座標が正しいことを視覚的に確認する方法について、ステップバイステップで説明します。
IronOCRを使い始める
画像の特定のOCR領域を定義する方法
- OCR領域を定義するためのC#ライブラリをダウンロードする
- OCRエンジンをインスタンス化する
- OCR領域を長方形で指定する
LoadImageで定義した四角形とともに画像をロードします。- OcrResultプロパティにアクセスして、抽出されたデータを表示および操作します。
特定の地域で OCR を実行するにはどうすればよいですか?
特定の OCR 領域を定義するには、IronSoftware.Drawing 名前空間から Rectangle オブジェクトを作成します。 このオブジェクトには 4 つの値が必要です: width と height、すべてピクセル単位で。 (x, y) 座標は、目的の領域の左上隅を表します。
LoadImage を使用して画像を読み込む際に、この Rectangle を第2パラメータとして渡します。 IronOCR は、OCR プロセスをその境界ボックス内のピクセルのみに制限します。
請求書、スキャンしたフォーム、アイデンティティ文書のように、特定の情報が常に予測可能な場所に表示されるような構造化された文書を扱う場合、地域 OCR は特に便利です。 OCRを関連する領域だけに限定することで、処理速度を大幅に向上させ、無関係なテキストによる誤検出を減らすことができます。
Rectangle の座標を見つけるには、MS Paint のような簡単な画像エディタを使用できます。 入力画像を開き、指定された領域の左上隅と右下隅にマウスをホバーして、(x, y) ピクセル座標をメモしてください。 次に、長方形のプロパティを計算できます: (x1, y1, width, height)、ここで width = x1 と height = y1。
テストにはどのような画像を使用すればよいですか?
3つの段落を含むサンプル画像を使用します。目標は、2番目の段落のみを抽出し、残りのテキストを無視することです。 これは、大きな文書から特定のフィールドやセクションを抽出する必要がある一般的なシナリオを示しています。

コードで地域 OCR を実装するにはどうすればよいですか?
OcrInput オブジェクト を作成し、指定した長方形領域で画像を読み込みます。 このアプローチは、JPG、PNG、GIF、TIFF、BMPを含むさまざまな画像フォーマットに対応しています。
using IronOcr;
using IronSoftware.Drawing;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define the specific region as a Rectangle
// (x, y) is the top-left corner.
var ContentArea = new Rectangle(x: 215, y: 1250, width: 1335, height: 280);
ocrInput.LoadImage("region-input.png", ContentArea);
var ocrResult = ocrTesseract.Read(ocrInput);
// Print the extracted text
Console.WriteLine(ocrResult.Text);Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Dim ocrTesseract As New IronTesseract()
Using ocrInput As New OcrInput()
' Define the specific region as a Rectangle
' (x, y) is the top-left corner.
Dim ContentArea As New Rectangle(x:=215, y:=1250, width:=1335, height:=280)
ocrInput.LoadImage("region-input.png", ContentArea)
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Print the extracted text
Console.WriteLine(ocrResult.Text)
End Usingより複雑なシナリオでは、同じ画像内に複数のリージョンを定義することができます。 これは、複数のフィールドを持つフォームや、ドキュメント内のテーブルを処理する場合に特に役立ちます:
using IronOcr;
using IronSoftware.Drawing;
var ocr = new IronTesseract();
// Define multiple regions for different form fields
var nameField = new Rectangle(x: 100, y: 200, width: 300, height: 50);
var dateField = new Rectangle(x: 100, y: 300, width: 200, height: 50);
var amountField = new Rectangle(x: 400, y: 500, width: 150, height: 50);
// Load the same image with a separate OcrInput per region
OcrResult nameResult;
using (var input = new OcrInput())
{
input.LoadImage("form.png", nameField);
nameResult = ocr.Read(input);
}
OcrResult dateResult;
using (var input = new OcrInput())
{
input.LoadImage("form.png", dateField);
dateResult = ocr.Read(input);
}
OcrResult amountResult;
using (var input = new OcrInput())
{
input.LoadImage("form.png", amountField);
amountResult = ocr.Read(input);
}
// Process each field separately
Console.WriteLine($"Name: {nameResult.Text}");
Console.WriteLine($"Date: {dateResult.Text}");
Console.WriteLine($"Amount: {amountResult.Text}");
どのような結果を期待できますか?
コンソール出力からわかるように、OCR によって処理されるのは 2 番目の段落のみです。 このようなターゲットを絞ったアプローチにより、画像の他の部分から無関係なテキストが翻訳結果を邪魔することがなくなります。

地域OCRの精度は、いくつかの要因に左右されます:
- 画質:一般的に、解像度の高い画像の方が良い結果が得られます。 DPI設定を使用して画像を最適化することを検討してください。
- テキストの向き: テキストが適切に配置されていることを確認してください。 必要に応じて、ページ回転検出を使用してください。
- コントラストと明瞭さ:画像補正フィルターを適用して、テキストの読みやすさを向上させます。
座標が正しいことを確認するにはどうすればよいですか?
入力画像の正しい座標を選択したことを確認するには、定義したContentArea を視覚化します。 これを行う簡単な方法は、入力画像に長方形を描画し、StampCropRectangleAndSaveAs を使って新しいファイルとして保存することです。 これにより、座標をデバッグして微調整し、最適なパフォーマンスを実現できます。
この視覚化テクニックは、複雑なレイアウトで作業するときや、品質保証の目的で特定のテキストエリアを強調表示する必要があるときに特に役立ちます。
これは、上記の入力画像の例に指定された境界ボックスを描画した後の出力画像です。
選択した領域を視覚化するにはどうすればよいですか?
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define the specific rectangular area to scan within the image.
// The coordinates are in pixels: (x, y) is the top-left corner of the rectangle.
var ContentArea = new Rectangle(x: 4, y: 59, width: 365, height: 26);
ocrInput.LoadImage("region-input.png", ContentArea);
var ocrResult = ocrTesseract.Read(ocrInput);
// Draws the rectangle from above in a blue bounding box on the image for visualization.
ocrInput.StampCropRectangleAndSaveAs(ContentArea, Color.Aqua, "region-input.png");Imports IronOcr
Imports IronSoftware.Drawing
Dim ocrTesseract = New IronTesseract()
Using ocrInput As New OcrInput()
' Define the specific rectangular area to scan within the image.
' The coordinates are in pixels: (x, y) is the top-left corner of the rectangle.
Dim ContentArea As New Rectangle(x:=4, y:=59, width:=365, height:=26)
ocrInput.LoadImage("region-input.png", ContentArea)
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Draws the rectangle from above in a blue bounding box on the image for visualization.
ocrInput.StampCropRectangleAndSaveAs(ContentArea, Color.Aqua, "region-input.png")
End Using視覚化はどのように見えますか?

水色の四角形は、処理のために 2 番目の段落を正しく分離したことを確認します。
地域 OCR はいつ使用すべきですか?
地域OCRは、いくつかの一般的なシナリオに最適です:
1.フォーム処理:データが一貫した場所に表示される標準化されたフォームから特定のフィールドを抽出する場合。 2.請求書処理: ドキュメント全体を処理することなく、合計、日付、請求書番号などの特定の値を抽出します。 3.ライセンスプレート:ナンバープレート認識を使用するときは、プレートの領域だけに注目してください。 4.身分証明書: パスポートまたはIDカードから特定のフィールドを抽出します。 5.スクリーンショット:スクリーンショットで特定のUI要素からテキストをキャプチャする場合。
地域 OCR のベストプラクティス
地域OCRで最適な結果を得る
1.パディングを追加する: 文字が端で切れてしまわないように、テキストの周囲に小さなバッファを含めます。 2.サンプル画像でテストする:大きなバッチを処理する前に、常に代表的なサンプルで座標を検証してください。 3.バリエーションを扱う:スキャンした文書のわずかな位置のばらつきを考慮して、領域を必要以上に少し大きくしてください。 4.パフォーマンスを最適化する:マルチスレッド処理では、異なる領域を並行して処理します。 5.自信を監視する:結果の信頼度スコアをチェックし、正確さを確認します。
OCR処理を特定の領域に集中させることで、テキスト抽出タスクの速度と精度の両方を大幅に向上させることができます。 この的を絞ったアプローチは、.NETアプリケーションで効率的な文書処理ワークフローを構築するために不可欠です。
よくある質問
C#で画像の特定の部分のみからテキストを抽出するにはどうすればよいですか?
IronOCRでは、x/y座標、幅、高さの値を持つRectangleオブジェクトを作成することで、特定の領域からテキストを抽出することができます。このRectangleをLoadImageメソッドの2番目のパラメータとして渡すと、IronOCRはその定義された領域のみにOCR処理を制限する。
画像全体をスキャンする代わりにOCR領域を定義する利点は何ですか?
IronOCRで特定のOCR領域を定義することにより、処理速度を向上させ、精度を高め、無関係なテキストを取り込むことによるエラーを減らすことができます。これは、情報が予測可能な場所に現れる構造化された文書に特に有効です。
地域OCR用の矩形を作成するには、どのようなパラメータが必要ですか?
IronOCRの地域OCR用の矩形を作成するには、ピクセル単位でx座標、y座標、幅、高さの4つの値が必要です。(x, y)座標は希望するスキャン領域の左上隅を表します。
OCR 領域用の Rectangle オブジェクトを含む名前空間はどれですか?
IronOCRでOCR領域を定義するRectangleオブジェクトはIronSoftware.Drawing名前空間にあります。
地域別OCR処理が最も有効な文書の種類は?
IronOCRのリージョナルOCRは、請求書、スキャンしたフォーム、IDドキュメントなど、特定の情報が一貫して同じ場所に現れるような構造化されたドキュメントに特に効果的です。
Is it possible to visualize the OCR region on the input image?
Yes, you can visualize the OCR region by using the `StampCropRectangleAndSaveAs` method to draw the specified rectangle on the input image, aiding in coordinate verification.
For what applications is regional OCR particularly useful?
Regional OCR is useful for form processing, invoice scanning, license plate recognition, identity document analysis, and extracting text from UI elements in screenshots.
What are some best practices for using regional OCR in document processing?
Best practices include adding padding around text, testing with sample images, handling slight document variations, optimizing performance with multithreading, and monitoring result confidence scores.
How can I improve the accuracy of IronOCR's regional scanning?
Improve accuracy by using high-resolution images, ensuring proper text orientation, applying contrast and clarity filters, and verifying the targeted region visually.
Can IronOCR be used with different image formats?
Yes, IronOCR supports various image formats including JPG, PNG, GIF, TIFF, and BMP, making it versatile for different scanning and processing needs.

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。