C# で画像の特定の OCR 領域を定義する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

多くの場合、請求書の合計金額やフォームの特定のフィールドなど、画像の小さな部分からテキストを抽出するだけで済みます。 ドキュメント全体をスキャンするのは非効率的であり、無関係なテキストをキャプチャすることでエラーが発生する可能性があります。

IronOCR を使用すると、スキャンする正確な長方形領域を指定することにより、精度、パフォーマンス、正確性を向上させることができます。 このガイドでは、特定の OCR 領域を定義し、そこからテキストを抽出し、OCR タスクに対して座標が正しいことを視覚的に確認する方法について、ステップバイステップで説明します。

IronOCRを使い始める

今日あなたのプロジェクトでIronOCRを無料トライアルで使用開始。

最初のステップ:
green arrow pointer


特定の領域でOCRを実行する

特定の OCR 領域を定義するには、Iron Software.Drawing 名前空間からRectangleオブジェクトを作成します。 このオブジェクトには、x 座標、y 座標、幅、高さの 4 つの値 (すべてピクセル単位) が必要です。 (x, y) 座標は、目的の領域の左上隅を表します。

LoadImage使用して画像を読み込むときは、このRectangle 2 番目のパラメータとして渡します。 IronOCR は、OCR プロセスをその境界ボックス内のピクセルのみに制限します。

ヒント長方形の座標を見つけるには、MS ペイントのようなシンプルな画像エディタを使用できます。 入力画像を開き、指定された領域の左上隅と右下隅にマウスを移動して、(x, y) ピクセル座標をメモします。 次に、長方形のプロパティ (x1、y1、幅、高さ) を計算できます。ここで、幅 = x2-x1、高さ = y2-y1 です。

OCR入力

3つの段落を含むサンプル画像を使用します。目標は、2番目の段落のみを抽出し、残りのテキストを無視することです。

OCR入力

コード

:path=/static-assets/ocr/content-code-examples/how-to/ocr-region-of-an-image.cs
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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力

コンソール出力からわかるように、OCR によって処理されるのは 2 番目の段落のみです。

OCR出力

画像のOCR領域の検証

入力画像の正しい座標を選択したことを確認するには、定義したContentArea を視覚化します。 これを行う簡単な方法は、入力画像に四角形を描画し、 StampCropRectangleAndSaveAsを使用して新しいファイルとして保存することです。 これにより、座標をデバッグして微調整し、最適なパフォーマンスを実現できます。

これは、上記の入力画像の例に指定された境界ボックスを描画した後の出力画像です。

コード

:path=/static-assets/ocr/content-code-examples/how-to/ocr-region-of-an-image-highlighted.cs
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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力

OCRハイライト出力

水色の四角形は、処理のために 2 番目の段落を正しく分離したことを確認します。

よくある質問

画像の特定の OCR 領域を定義する必要があるのはなぜですか?

画像の特定の OCR 領域を定義すると、エラーの原因となる文書全体をスキャンするのではなく、請求書の合計金額などの関心領域に焦点を当てることで、精度と正確性を向上させるのに役立ちます。

IronOCR を使用して OCR 領域を指定するにはどうすればよいですか?

IronOCRでは、必要な座標と寸法を持つ`Rectangle`オブジェクトを作成することで、OCR領域を指定できます。そして、この矩形を`LoadImage`メソッドに渡すことで、OCR処理を特定の領域に限定することができます。

OCR 領域を定義するために必要なパラメーターは何ですか?

OCR領域を定義するには、`Rectangle`オブジェクトに4つのパラメータ(x座標、y座標、幅、高さ)を指定する必要があります。これらのパラメータは、領域の左上隅とサイズを決定します。

OCR に正しい座標が選択されていることを確認するにはどうすればよいですか?

正しい座標を確認するには、`StampCropRectangleAndSaveAs` を使用して入力画像に四角形を描画し、定義されたContentAreaを視覚化します。これは、座標のデバッグと微調整に役立ちます。

OCR 領域の座標を見つけるにはどのようなツールを使用できますか?

OCR領域の座標を見つけるには、MSペイントなどのシンプルな画像エディタを使用できます。マウスを目的の領域の左上隅と右下隅に合わせると、ピクセル座標(x, y)が表示されます。

地域特有のOCRタスクにIronOCRを使用することの利点は何ですか?

IronOCR を使用すると、画像の特定の領域からテキストを効率的に抽出できるため、無関係なテキストのキャプチャを防ぐことでエラーが減り、パフォーマンスが向上します。

処理前に OCR 領域を視覚的に確認できますか?

はい、入力画像上に四角形を描くことで、OCR領域を視覚的に確認できます。これにより、処理対象となる正しい領域が分離され、精度が確保されます。

IronOCR で処理できる画像の種類は何ですか?

IronOCR はさまざまな画像形式を処理できるため、文書、フォーム、請求書で使用される画像の特定の領域からテキストを抽出できます。

IronOCR は指定された領域内で OCR プロセスをどのように処理しますか?

IronOCR は、指定された境界ボックス内のピクセルに OCR プロセスを制限し、定義された領域内のテキストのみが抽出されるようにします。

IronOCR の OCR プロセスの出力形式は何ですか?

IronOCR の OCR プロセスの出力形式は `OcrResult` プロパティを通じてアクセスでき、必要に応じて抽出されたデータを表示および操作できます。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 5,167,857 | Version: 2025.11 リリース