IRONSOFTWAREHOME

C# における WORD および文字の OCR データ(座標、信頼度、バウンディングボックス)

Darrius Serrant
Darrius Serrant
Updated: 2026年5月15日

文書に対してOCRを実行した後、抽出されたテキストだけでは不十分な場合がよくあります。 ページ上の特定の値を特定したり、精度の低い検出結果を除外したり、複数列レイアウトで自然な読み順を再構築したりするには、WORDごとの座標、ページ番号、領域インデックス、および信頼度スコアが必要です。

このデータを公開するAdvancedOcrResultBaseにあります。 レイアウト認識ドキュメントのためのReadDocumentAdvanced()と、カメラインプットのためのOcrResult.Wordsコレクションと同じ粒度を返します。

このガイドでは、WORDデータの反復処理、読み順の再構築、信頼度によるフィルタリング、文字レベルでの処理、バウンディングボックスからのソース画像の切り抜きという、5つの一般的なパターンについて解説します。

30日間トライアルを開始して、これらのコレクションをパイプラインで試してみてください。

NuGetNuGetでインストール

PM > Install-Package IronOcr

Install IronOCR by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.
クイックスタート: OCR結果からWORDおよび文字データを読み取る

数行で、認識されたすべての単語をその座標、ページ番号、信頼スコアとともに取得するには、result.Wordsを反復します。

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2このコード スニペットをコピーして実行します。

    var result = new IronTesseract().ReadDocumentAdvanced(new OcrInput("scan.png"));
    foreach (var word in result.Words)
        Console.WriteLine($"{word.Text} @ ({word.X},{word.Y}) conf:{word.RegionConfidence:P0}");
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronOCR を使い始めましょう無料トライアル
    arrow pointer

座標と信頼度を含むWORDの反復処理はどのように行いますか?

Wordsコレクションは、すべてのページで検出されたすべての単語を返します。 それぞれのエントリー(AdvancedOcrElementから継承)は、テキスト、ピクセル座標、寸法、それが属するページ、それを含む検出テキストブロックを識別する領域インデックス、その領域の信頼スコアを公開します。

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("receipt.png");

var result = ocr.ReadDocumentAdvanced(input);

foreach (var word in result.Words)
{
    Console.WriteLine(
        $"Page {word.PageNumber} | " +
        $"'{word.Text}' | " +
        $"Position: ({word.X}, {word.Y}) | " +
        $"Size: {word.Width}x{word.Height} | " +
        $"Confidence: {word.Confidence:P1}"
    );
}

// ToString() override for diagnostic logging
Console.WriteLine(result.Words.First().ToString());
C#
ヒント: 0ではありません。} これは、0 ベースのインデックスを使用するほとんどの .NET コレクションとは異なります。 RegionIndexは標準の0から始まる慣行に従います。

座標を描画または切り取りAPIに渡すには、BoundingBoxプロパティを使用します。 それは位置とサイズを単一のIronSoftware.Drawing.Rectangleにバンドルします。

読み順をどのように再構築しますか?

複数列のレイアウトでは、Wordsコレクションの反復順序はページの視覚的な読み取り順序と一致しません。 WORDは検出された領域ごとにグループ化されるため、列や表のセルが順序通りに返されない場合があります。

自然な上から下、左から右の順序を再現するには、まずY座標でコレクションをソートし、各行内でX座標でソートしてください。Y座標にわずかな許容誤差を設けることで、同じベースライン上に位置するWORDをグループ化します。

using IronOcr;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("multi-column-doc.png");

var result = ocr.ReadDocumentAdvanced(input);

int targetPage = 1;
int lineThreshold = 10; // pixel tolerance for grouping same-line words

// Sort by line (Y), then left-to-right (X)
var pageWords = result.Words
    .Where(w => w.PageNumber == targetPage)
    .OrderBy(w => w.Y / lineThreshold)
    .ThenBy(w => w.X)
    .ToList();

foreach (var word in pageWords)
{
    Console.Write($"{word.Text} ");
}
Console.WriteLine();

ドキュメントに合わせてlineThresholdを調整します: 10–15ピクセルは標準の12ptテキストで300 DPIで機能します。 大きな見出しや手書きの入力については、多少の許容範囲を設けてください。 このパターンは、エンジンが各列やセルを個別の領域として認識する、複数列のページや表のセル内において特に有用です。

信頼度の低い単語はどのようにフィルタリングしますか?

データベース、検索インデックス、 または下流の抽出に到達する前に低品質の検出を除外するには、RegionConfidenceでコレクションをフィルタリングします。 スコアは0.0から1.0の範囲で、数値が高いほど検出されたテキストに対する信頼度が高いことを示します。

using IronOcr;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("noisy-scan.png");

var result = ocr.ReadDocumentAdvanced(input);

double threshold = 0.75;

var highConfidenceWords = result.Words
    .Where(w => w.Confidence >= threshold)
    .ToList();

var lowConfidenceWords = result.Words
    .Where(w => w.Confidence < threshold)
    .ToList();

Console.WriteLine($"Accepted: {highConfidenceWords.Count} words");
Console.WriteLine($"Rejected: {lowConfidenceWords.Count} words");

// Log rejected words for manual review
foreach (var word in lowConfidenceWords)
{
    Console.WriteLine(
        $"  LOW CONF: '{word.Text}' at ({word.X},{word.Y}) — {word.Confidence:P1}"
    );
}
C#

スキャン品質にばらつきがある場合(一部の領域は鮮明だが、他の部分は画質が劣化しているなど)、これにより信頼性の低い出力が下流のシステムに到達するのを防ぎます。 ソース側の信頼度スコアを高めるため、画像前処理フィルター(Deskew、DeNoise、Binarize)がしきい値の適用前に画質を向上させます。

文字単位での反復処理はどのように行いますか?

OCR検証オーバーレイ、グラウンドトゥルースに対する文字レベル差分、またはフォームフィールドでの正確な空間分析のために、Charactersコレクションを使用します。 それはWordsを反映していますが、個々の文字にまで解決されます。

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("form-field.png");

var result = ocr.ReadDocumentAdvanced(input);

foreach (var ch in result.Characters)
{
    Console.WriteLine(
        $"'{ch.Text}' | " +
        $"Box: ({ch.X}, {ch.Y}, {ch.Width}, {ch.Height}) | " +
        $"Page {ch.PageNumber}"
    );
}

// ToString() override provides diagnostic-friendly output
Console.WriteLine(result.Characters.First().ToString());
ご注意: Charactersの両方は遅延評価され、キャッシュされます。

最初のアクセスによって計算が開始されます; (以降のアクセスではキャッシュされた結果が返されるため、2回目以降の反復処理にはコストがかかりません。)}]

バウンディングボックスを使用して元の画像をトリミングするにはどうすればよいですか?

検証、注釈付け、またはラベル付きトレーニングデータの作成のために単語の視覚領域を抽出するには、AnyBitmap.CropRegion()に渡します。 バウンディングボックスは、ソース画像内のWORDの位置と直接対応しています。

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("invoice.png");

var result = ocr.ReadDocumentAdvanced(input);

// Load the original image for cropping
var originalImage = AnyBitmap.FromFile("invoice.png");

// Find a specific word and crop its region
var targetWord = result.Words.FirstOrDefault(w => w.Text == "Total");
if (targetWord != null)
{
    Rectangle cropRect = targetWord.BoundingBox;
    AnyBitmap croppedRegion = originalImage.Clone(cropRect);
    croppedRegion.SaveAs("total-region.png");

    Console.WriteLine(
        $"Cropped '{targetWord.Text}' from " +
        $"({cropRect.X}, {cropRect.Y}, {cropRect.Width}, {cropRect.Height})"
    );
}

このパターンはバッチ処理にも拡張可能です。すべてのWORDを反復処理し、各ボックスを切り出し、カスタムフォントのトレーニングや下流の機械学習パイプライン用にラベル付きデータセットをエクスポートします。 座標は前処理後の画像を反映しています; フィルターとしてEnhanceResolutionが寸法を変更した場合、バウンディングボックスはディスク上の元のものではなく、処理された画像に一致します。

次のステップ

高度なパイプラインは、IronTesseract.Read()と同じ空間的な詳細を提供し、それに加えてレイアウトのインテリジェンスを備えています。関連トピック:

30日間トライアルを開始するか、ライセンスオプションをご覧ください

よくある質問

C#での高度なOCRとは?

C#での高度なOCRとは、IronOCRの高度なパイプラインを使用して、詳細な単語や文字データ、座標、信頼レベル、バウンディングボックスを含む、光学式文字認識を行うプロセスを指します。

IronOCRを使用して単語データにアクセスするにはどうすればよいですか?

IronOCRでは、AdvancedWordコレクションを反復することで単語データにアクセスでき、スキャンされた文書内の各単語の位置と信頼度スコアの詳細な情報を提供します。

OCRでのバウンディングボックスの意義は何ですか?

バウンディングボックスはOCRにおいて非常に重要であり、スキャン画像上の認識されたテキスト要素の場所と寸法を正確に定義し、正確なテキスト抽出と画像操作を可能にします。

信頼度スコアでOCR結果をフィルタリングできますか?

はい、IronOCRを使用すれば信頼度スコアでOCR結果をフィルタリングし、高精度で認識されたテキストのみをさらに処理するために考慮することができます。

OCR結果で読み順を再構築する方法は?

IronOCRが提供するAdvancedWordおよびAdvancedCharacterオブジェクトのシーケンスを分析することで、OCR結果での読み順を再構築できます。これにより文書の自然な読み流れが反映されます。

IronOCRを使用してソース画像をトリミングすることは可能ですか?

IronOCRは、認識された単語や文字のバウンディングボックスと座標を含むテキストデータの分析に基づいて、ソース画像をトリミングすることを可能にします。

AdvancedWordとAdvancedCharacterコレクションとは何ですか?

IronOCRのAdvancedWordとAdvancedCharacterコレクションは、認識された各単語および文字の詳細な情報を格納するデータ構造で、座標、信頼度レベル、およびバウンディングボックスを含みます。

IronOCRは文字認識をどのように処理しますか?

IronOCRは、高度なパイプラインを利用して各文字の特徴を分析し、その位置、サイズ、認識信頼度などの詳細データを提供することで文字認識を処理します。

IronOCRでどのような種類のドキュメントを処理できますか?

IronOCRはPDF、スキャン画像、写真など幅広い種類の文書を処理し、高精度と詳細なテキストデータを抽出できます。

How can OCR results be used for custom font training or machine learning?

OCR results, including cropped image regions and labeled datasets derived from bounding boxes, can be used to train custom fonts or feed machine learning pipelines. IronOCR facilitates these processes with its detailed spatial data extraction capabilities.

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

...
詳しく読む

準備はできましたか?

Nuget Downloads 6,236,385バージョン:2026.9リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 「参照」を選択して「IronOCR」を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

または、Windowsインストーラーをこちらからダウンロード。

  1. IronOCRをダウンロードして、ソリューションディレクトリ内の~/Libsなどの場所に解凍します
  2. Visual Studioソリューションエクスプローラーで、リファレンスを右クリックします。「参照」、「IronOCR.dll」を選択

$999からのライセンス

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。