IronOCRを使ってC#で読み取り結果を抽出する方法

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

IronOCRのReadメソッドは、抽出されたテキストと、検出された各要素の正確な座標、寸法、テキストの方向、階層構造(段落、行、単語、文字)を含む詳細なメタデータを含むOcrResultオブジェクトを返します。

OCRの結果には、検出された段落、行、単語、個々の文字に関する包括的な情報が含まれています。

各要素について、テキストの内容、正確な X 座標と Y 座標、寸法 (幅と高さ)、テキストの方向 (左から右または上から下)、およびCropRectangleオブジェクト内の位置が提供されます。

クイックスタート: 最初に検出された単語から単語テキストを取得する

IronTesseractReadメソッドを使用して画像をOCRし、Wordsコレクションを使用して最初の単語のテキストを抽出します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronOCR をインストールします

    PM > Install-Package IronOcr

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

    string wordText = new IronTesseract().Read("file.jpg").Words[0].Text;
  3. 実際の環境でテストするためにデプロイする

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

OCR結果からどのようなデータを抽出できますか?

翻訳結果には抽出されたテキストだけでなく、IronOCRによってPDFや画像ドキュメントから発見されたページ、段落、行、単語、文字、バーコードの情報も含まれます。 OcrResultオブジェクトから、Readメソッドを使用して、この情報にアクセスできます。

IronOCRの包括的な翻訳結果システムは、強力なTesseract 5エンジンの上に構築されており、単純なテキスト認識以上の構造化データ抽出機能を開発者に提供します。 スキャンされたドキュメント写真スクリーンショットのいずれを処理する場合でも、OcrResultクラスは抽出されたデータを細かく制御します。

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-information.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Output information to console
Console.WriteLine($"Text: {paragraphs[0].Text}");
Console.WriteLine($"X: {paragraphs[0].X}");
Console.WriteLine($"Y: {paragraphs[0].Y}");
Console.WriteLine($"Width: {paragraphs[0].Width}");
Console.WriteLine($"Height: {paragraphs[0].Height}");
Console.WriteLine($"Text direction: {paragraphs[0].TextDirection}");
Imports IronOcr
Imports System
Imports IronOcr.OcrResult

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Retrieve list of detected paragraphs
Private paragraphs() As Paragraph = ocrResult.Paragraphs

' Output information to console
Console.WriteLine($"Text: {paragraphs(0).Text}")
Console.WriteLine($"X: {paragraphs(0).X}")
Console.WriteLine($"Y: {paragraphs(0).Y}")
Console.WriteLine($"Width: {paragraphs(0).Width}")
Console.WriteLine($"Height: {paragraphs(0).Height}")
Console.WriteLine($"Text direction: {paragraphs(0).TextDirection}")
$vbLabelText   $csharpLabel
Visual Studioのデバッガで、日本のビジネス文書から座標とテキストを含むOCR抽出結果を表示しています。

OCR結果からテキスト コンテンツにアクセスするには?

OcrResultオブジェクトは、抽出されたテキストをシンプルで直感的な方法で表示するため、開発者はそれを直接使用したり、他のアプリケーションコンポーネントに統合したりすることができます。 階層構造は、自然なドキュメントのテキスト構成を反映しており、異なる粒度レベルのコンテンツを簡単に扱うことができます。

多言語サポートを必要とするアプリケーションのために、IronOCRは多言語ドキュメントをシームレスに処理し、すべての125のサポート言語で同じ構造化された結果フォーマットを維持します。

次のコード例は、結果を確認するためにループでテキストを表示します。

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-text.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---");
foreach (Paragraph paragraph in paragraphs)
{
    // Print the text of the current paragraph
    Console.WriteLine(paragraph.Text);
    
    // Add a blank line for better separation (optional)
    Console.WriteLine(); 
}

IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力

孫正義と重田康光に関するテキストを抽出したOCR段落検出結果を表示するターミナル.

コンソール出力はIronOCRが段落テキストを一行ずつ正確に抽出していることを示しています。 このエンジンは段落境界を自動的に検出するため、複数のテキストブロックがある複雑な文書の処理に最適です。

検出されたテキストの位置座標を取得するにはどうすればよいですか?

抽出されたテキストに加えて、OcrResultは詳細な位置データを提供します。 この空間情報は、レイアウトの忠実度を維持したり、特定のドキュメント領域から的を絞ったテキスト抽出を行う必要があるアプリケーションにとって非常に重要です。 座標系は、ページの左上隅からの標準ピクセル寸法を使用します。

座標ベースの操作の精度を高めるには、OCR リージョン ターゲティングを使用して特定の領域に焦点を当てたり、Computer Vision 機能を活用してテキスト領域を自動的に識別したりすることを検討してください。

次のコードは、各段落を繰り返し処理し、その座標(XとY)をコンソールに表示することを示します。

:path=/static-assets/ocr/content-code-examples/how-to/read-results-output-text.cs
using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---");
foreach (Paragraph paragraph in paragraphs)
{
    // Print the text of the current paragraph
    Console.WriteLine(paragraph.Text);
    
    // Add a blank line for better separation (optional)
    Console.WriteLine(); 
}

IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力

OCRで検出された段落座標をX,Y値で示すターミナル出力:(29,30)、(28,74)、(27,362).

出力は、3つの段落に対応する3組の座標を示しています。これらの座標は、バウンディングボックスの描画、特定領域の抽出、テキスト要素間の空間的関係の維持に使用できます。

OCRの結果には他にどのような属性がありますか?

IronOCRはテキストとテキスト座標に加えて、追加情報を提供します。 各テキスト要素(段落、行、単語、個々の文字)について、以下の情報があります:

  • テキスト: 文字列としての実際のテキスト。
  • X:ページの左端からのピクセル単位での位置。
  • Y:ページの上端からのピクセル単位での位置。
  • : ピクセル単位の幅です。
  • 高さ: ピクセル単位の高さ。
  • テキストの方向:テキストが読まれた方向(左から右、または上から下)。
  • 位置:このテキストがページ上のどこにあるかをピクセル単位で示す四角形。

これらの属性は、実装時に特に役立ちます:

  • テキストハイライトと注釈システム
  • フォームフィールドの自動検出
  • 文書変換におけるレイアウト保持
  • データ抽出のための空間テキスト分析

デバッグと視覚化のために、ハイライトテキスト機能を使用して、検出された領域の精度を視覚的に確認してください。

段落、行、単語、文字はどのように比較されますか?

IronOCRの階層的なテキスト構造により、開発者は特定のユースケースに適した詳細レベルで作業することができます。 これらの要素の違いを理解することは、アプリケーションに適した粒度を選択するのに役立ちます。

以下は、検出された段落、行、単語、文字の比較です。

日本のハイテク企業家、孫正義と重田康光の経歴をハイライトで紹介。
日本のハイテク企業幹部である孫正義氏と重田康光氏のプロフィールを赤字で強調した文書
技術投資に関する段落で、選択した単語に赤いボックスが重なるテキストハイライト機能
OCR結果の個々の文字の境界を示す文字レベルのテキスト検出

それぞれの粒度レベルには異なる目的があります:

  • 段落: 文書構造分析とテキスト一括抽出に最適です。
  • :読み順を維持し、表形式のデータを処理するのに便利です。
  • 単語: 検索機能とテキスト分析に最適です。
  • 文字:スペルチェックや精密なテキスト編集アプリケーションに最適です。

IronOCRはバーコードやQRコードを読み取れますか? はい、IronOCRはバーコードとQRコードを読むことができます。 この機能はIronBarcodeほど堅牢ではないかもしれませんが、IronOCRは一般的なバーコードタイプをサポートしています。バーコード検出を有効にするには、**Configuration.ReadBarCodes**プロパティをtrueに設定する。 この統合された機能により、IronOCRはインボイス、出荷ラベル、製品カタログのようなテキストとBarCodeの両方を含む文書の処理に最適です。 さらに、検出された BarCode から、フォーマット、値、座標 (x, y)、高さ、幅、`IronSoftware.Drawing.Rectangle` オブジェクトとしての位置などの貴重な情報を抽出することができます。 [IronDrawing](https://ironsoftware.com/open-source/csharp/drawing/docs/)のこの**Rectangle**クラスを使用すると、ドキュメント上で正確な配置が可能になります。 より高度な BarCode 読み取りシナリオについては、ドキュメントの包括的な[バーコード読み取り例](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-barcodes/)をご覧ください。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/read-results-barcodes.cs ``` ### バーコード検出の出力はどのように見えますか? IronOCRのバーコード検出機能は、テキスト抽出とシームレスに統合され、テキストコンテンツとバーコードデータの両方を含む統一された結果を提供します。 この2つの機能は、両方の情報タイプの抽出と相関が必要な自動文書処理ワークフローにとって価値があります。
QRコードとEAN8バーコードの検出結果をフォーマット、値、座標とともに示すデバッグコンソール
出力は、IronOCRが複数のバーコードタイプを同時に検出し、フォーマット識別(QRCodeやEAN8など)、デコードされた値、検出された各コードの正確な座標情報を提供する能力を示しています。 この包括的なデータにより、開発者は、さまざまな種類のコンテンツを効率的に処理する高度な文書処理アプリケーションを構築することができます。

よくある質問

OcrResultオブジェクトにはどのような情報が含まれていますか?

IronOCRのOcrResultオブジェクトには、抽出されたテキストに加えて、正確なX/Y座標、寸法(幅と高さ)、テキストの方向(左から右または上から下)、検出された各要素の段落、行、単語、個々の文字として整理された階層構造などの詳細なメタデータが含まれています。

OCR結果から最初の単語をすばやく抽出する方法を教えてください。

IronOCRのReadメソッドを使い、Wordsコレクションにアクセスすることで最初の単語のテキストを抽出することができます: `string wordText = new IronTesseract().Read("file.jpg").Words[0].Text;`.これにより、OCR結果から個々の単語要素に即座にアクセスできるようになります。

OCRの結果にはどのような座標データがありますか?

IronOCRは検出された各要素(段落、行、単語、文字)の正確なX、Y座標と幅、高さ寸法を提供します。この座標データはCropRectangleオブジェクトを通してアクセスでき、テキスト要素の正確な位置追跡を可能にします。

テキストコンテンツ以外のメタデータを抽出できますか。

IronOCRは、PDFやイメージ・ドキュメントから発見されたページ、段落、行、単語、文字、バーコードまでも含む包括的なメタデータを抽出します。OcrResultオブジェクトは、各要素のテキスト方向、階層構造、空間情報へのアクセスを提供します。

OCR結果を得るために処理できる文書の種類は?

IronOCRはスキャン文書、写真、スクリーンショット、PDF、画像ファイルなど様々な種類の文書を処理することができます。Readメソッドはこれらのフォーマットで一貫して動作し、完全なメタデータを持つ同じ構造のOcrResultオブジェクトを返します。

抽出されたテキストはどのように整理されますか?

IronOCRは抽出されたテキストを自然な文書構成を反映した階層構造で整理します。OcrResultオブジェクトは、ページ全体から個々の文字まで、さまざまな粒度レベルでコンテンツを表示するため、アプリケーションに適したレベルでテキストを簡単に扱うことができます。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 5,246,844 | バージョン: 2025.12 リリース