C#で写真から文字起こし・テキスト抽出を行う方法 with IronOCR
IronOCR の ReadPhoto メソッドは、TIFF や GIF などの複雑な写真形式から画像文字認識・テキスト抽出を行い、テキスト領域と信頼スコアを含む構造化された結果を提供します。これは、正確な OCR 処理を必要とする高品質のスキャン ドキュメントに最適化されています。
大量のドキュメント、特にTIFFファイルのようなスキャン画像を扱う場合、手作業でテキストを抽出するのは時間がかかり、エラーが発生しやすくなります。 光学式文字認識(OCR)は、このプロセスを自動化し、テキストを画像からデジタルデータに変換します。 OCRテクノロジーは、スキャンした文書や写真のような複雑な画像を処理し、検索可能で編集可能なテキストに変換します。 これにより、文書処理がスピードアップし、正確なデータ抽出が可能になります。
TIFFやGIFのようなフォーマットでOCRを使用すると、サイズや色深度、圧縮の問題にもかかわらず、膨大な量のデータをすばやくデジタル化できます。 IronOCR の ReadPhoto 機能を使用すると、開発者は画像からテキストを抽出し、キーワード検索やスキャンしたデータを検索可能な PDF に変換するなどの高度な操作を実行できます。 この技術は、効率的なデータ検索が重要な法的文書、アーカイブ、領収書を扱う業界に有益です。
このチュートリアルでは、ReadPhoto の使用と、results オブジェクトの操作方法を説明します。 IronOCRの標準の Read の代わりに ReadPhoto を使用する場合について説明します。 一般的な画像処理については、さまざまな画像フォーマットを読むを参照してください。
この機能を使用するには、IronOcr.Extension.AdvancedScanパッケージをインストールしてください。
クイックスタート: ReadPhoto を使用して複雑な画像からテキストを抽出する
すぐに始めましょう: 画像フレームがロードされた OcrInput で IronOCR の ReadPhoto メソッドを使用して、すべてのテキストと領域を抽出します。 TIFF、GIF、および類似の写真フォーマットに最適化されています。
最小限のワークフロー(5ステップ)
- 写真を読み取るためのC#ライブラリをダウンロードする
- 処理のために画像をインポートする
- 画像の種類に基づいて適切なインポート方法を使用する
- `ReadPhoto`メソッドを使用して画像からデータを抽出します
- **`OcrPhotoResult`**プロパティにアクセスして、抽出されたデータを表示および操作します。
ReadPhotoを使用してTIFF画像からテキストを抽出するには?
TIFFやGIFのような高品質な写真フォーマットの読み込みはIronOCRを使えば簡単です。 まず、OcrInput 変数を作成し、LoadImageFrame を使用してイメージを読み込みます。 次に、ReadPhoto メソッドを使用して結果を取得します。 multi-page TIFF OCR tutorial では、さらに複数ページのドキュメント例を提供しています。
- TIFFには複数のフレームが含まれています; ゼロベースのインデックスでは、
PageNumberパラメータが必要です。 - 現在、英語、中国語、日本語、韓国語、ラテンアルファベットに対応しています。
- .NET Frameworkで高度なスキャンを使用するには、x64アーキテクチャが必要です。
)}]
どのような入力形式を使用すればよいですか?
ブラウザはネイティブでTIFF形式をサポートしていないため、TIFF入力をダウンロードしてください。 以下の表示バージョンはWEBPに変換されています。

どのように ReadPhoto メソッドを実装しますか?
この実装では、TIFF画像からテキストと領域情報を抽出することを示します。 その他の例については、フォトリーディングコード例をご覧ください。
:path=/static-assets/ocr/content-code-examples/how-to/read-photo-read-photo.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("ocr.tiff", 0);
// Read photo
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);
// Index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;
// Extract the text in the first region
string textinregion = result.TextRegions[0].TextInRegion;
//Extract the co_ordinates of the first text region
Rectangle region = result.TextRegions[0].Region;
var output = $"Text in First Region: {textinregion}\n"
+ $"Text Region:\n"
+ $"Starting X: {region.X}\n"
+ $"Starting Y: {region.Y}\n"
+ $"Region Width: {region.Width}\n"
+ $"Region Height: {region.Height}\n"
+ $"Result Confidence: {result.Confidence}\n\n"
+ $"Full Scnned Photo Text: {result.Text}";
Console.WriteLine(output);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("ocr.tiff", 0)
' Read photo
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)
' Index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).PageNumber
' Extract the text in the first region
Dim textinregion As String = result.TextRegions(0).TextInRegion
'Extract the co_ordinates of the first text region
Dim region As Rectangle = result.TextRegions(0).Region
Dim output = $"Text in First Region: {textinregion}" & vbLf & $"Text Region:" & vbLf & $"Starting X: {region.X}" & vbLf & $"Starting Y: {region.Y}" & vbLf & $"Region Width: {region.Width}" & vbLf & $"Region Height: {region.Height}" & vbLf & $"Result Confidence: {result.Confidence}" & vbLf & vbLf & $"Full Scnned Photo Text: {result.Text}"
Console.WriteLine(output)
OcrPhotoResultはどのようなプロパティを提供しますか?

OcrPhotoResult クラスは、抽出されたテキストを分析するための重要なプロパティを提供します。 OCR結果の操作に関する詳細情報は、データ出力と結果の操作のガイドを参照してください。
Text : OCR 入力から抽出されたテキスト。
Confidence : 統計的精度の信頼度 (0 - 1 スケール、1 が最高)。 結果の信頼性スコアについては、こちらをご覧ください。
TextRegions : 位置データを含むテキスト領域のリスト。 ターゲット抽出のための OCR 領域の定義に似ています。
どのような場合にReadの代わりにReadPhotoを使用すべきですか?
ReadPhoto と標準の Read の主な違いは、result オブジェクトとサポートされているファイル形式です。 LoadImageFrame は、JPEG などの形式ではなく、TIFF と GIF のみを受け入れます。 ReadPhoto は複雑な画像形式に最適化されていますが、標準の Read はより単純な画像や一般的なテキスト抽出タスクに適しています。
なぜ ReadPhoto は TIFF と GIF フォーマットしかサポートしないのですか?
TIFFは、複数のページやフレームを1つのファイルに凝縮するためのロスレスフォーマットです。法律文書や医療画像など、高品質な複数画像の保存に使用されます。 JPEGよりも複雑なため、テキスト抽出には異なる方法が必要です。 専門的な処理により、プロ仕様の画像フォーマットで最適な結果を保証します。
TIFF画像は異なる圧縮方式を使用しているため、IronOCRはテキストを解読するために特殊なアルゴリズムを採用しています。 ReadPhoto の高度なアルゴリズムは TIFF 圧縮特性を処理し、複雑な多層ドキュメントからの正確な抽出を保証します。
TIFF形式とJPEG形式の比較です:
| 特徴 | TIFF(タグ付き画像ファイル形式) | JPG/JPEG (共同写真専門家グループ) |
|---|---|---|
| 圧縮 | ロスレスまたは非圧縮(品質を保持) | 非可逆圧縮(ファイルサイズを小さくすると品質が低下します) |
| ファイルサイズ | 大きい(高品質とオプションの圧縮なしのため) | より小さく、ウェブ使用と高速読み込みに最適化されています |
| 画像の品質 | 高(プロフェッショナルな使用に最適、すべての詳細を保持) | 低め(非可逆圧縮のため、画質が多少犠牲になります) |
| カラー深度 | 高い色深度をサポート(チャネルあたり最大16ビットまたは32ビット) | 24ビットカラー(1670万色) |
| 使用事例 | プロフェッショナルな写真撮影、出版、スキャン、アーカイブ | ウェブ画像、ソーシャルメディア、日常の写真 |
| 透明性 | 透明度とアルファチャンネルをサポート | 透明性をサポートしてい**ません** |
| 編集 | 複数回の編集に適しています(再保存しても品質が低下しません) | 編集と保存を繰り返すと品質が低下します |
| 互換性 | プロフェッショナルソフトウェアで広くサポートされています | すべてのプラットフォームとデバイスで普遍的にサポートされています |
| アニメーション | アニメーションをサポートしていません | アニメーションをサポートしていません |
| メタデータ | 広範なメタデータ(EXIF、レイヤーなど)を保存します | EXIFメタデータを保存しますが、制限があります |
自分のアプリケーション用にReadPhotoとReadのどちらを選べばよいですか?
アプリケーションのパフォーマンスを最適化するために、それぞれの生産ユースケースを考慮してください。 ReadPhoto は複雑な TIFF 画像に適していますが、処理速度が遅くなります。 JPEGは処理が高速ですが、品質が低いため、OCRの信頼率が低くなる可能性があります。 必要に応じて、画質補正フィルターを使用して、結果を改善します。
OcrPhotoResults または任意の IOcrResult インターフェースクラスの confidence プロパティは結果の精度を示すため、開発者はテストと最適化を行うことができます。最高の精度が求められる場合、特に精度が重要となるアーカイブ文書や法務文書の処理では、高品質の TIFF 画像を使用した ReadPhoto が最良の結果をもたらします。
画像が一定の品質基準を満たすようにすることで、効率と正確さのバランスを見つけます。 混合ドキュメント タイプの場合は、ハイブリッド アプローチを実装します。つまり、高い精度が要求される重要なドキュメントには ReadPhoto を使用し、速度を優先する日常的なタスクには標準の Read を使用します。
よくある質問
ReadPhotoメソッドはどの画像形式をサポートしていますか?
IronOCRのReadPhotoメソッドは、TIFFやGIFのような複雑な写真フォーマットに最適化されています。高品質のスキャン文書や写真からテキストを抽出するために特別に設計されており、テキスト領域と信頼度スコアで構造化された結果を提供します。
TIFF画像からテキストを抽出する方法を教えてください。
IronOCRを使ってTIFF画像からテキストを抽出するには、OcrInput変数を作成し、LoadImageFrameを使って画像をロードし、ReadPhotoメソッドを適用します。プロセスは簡単です: var result = new IronTesseract().ReadPhoto(new OcrInput().LoadImageFrame("photo.tiff", 0));
ReadPhoto機能を使用するには、どのような追加パッケージが必要ですか?
IronOCRでReadPhoto関数を使用するには、NuGetからIronOcr.Extension.AdvancedScanパッケージをインストールする必要があります。この拡張機能はReadPhotoメソッドに必要な高度なスキャン機能を提供します。
標準のReadメソッドではなく、ReadPhotoを使用するのはどのような場合ですか?
TIFFやGIFのような複雑な写真フォーマットを扱う場合、特に正確なOCR処理を必要とする高品質のスキャン文書には、IronOCRのReadPhotoメソッドを使用してください。標準のReadメソッドは一般的な画像処理に適しています。
ReadPhotoはどのような結果をもたらしますか?
IronOCRのReadPhotoメソッドは、抽出されたテキスト領域と信頼度スコアを含む構造化されたOCR結果を提供します。OcrPhotoResultプロパティを通してこれらにアクセスし、抽出されたデータを見たり操作したりすることができます。
ReadPhotoは複数ページの文書を処理できますか?
はい、IronOCRのReadPhotoメソッドは複数ページのドキュメント、特に複数のフレームを含むことが多いTIFFファイルを処理できます。LoadImageFrameメソッドでは、複数ページのドキュメントで処理するフレームを指定できます。
写真にOCR技術を使用すると、どのような業界でメリットがありますか?
IronOCRは、法的文書、アーカイブ、領収書、効率的なデータ検索が重要な大量のスキャン文書を扱うビジネスに役立ちます。ReadPhotoメソッドは、これらの複雑な画像フォーマットからのテキスト抽出を自動化します。

