C# OCR Image to Text Tutorial: Convert Images to Text Without Tesseract
複雑なTesseractの設定に煩わされることなく、C#で画像をテキストに変換することをお考えですか? この包括的なIronOCR C#チュートリアルでは、わずか数行のコードで.NETアプリケーションに強力な光学式文字認識を実装する方法を紹介します。
クイックスタート: 1行で画像からテキストを抽出
この例はIronOCRがいかに簡単に理解できるかを示しています-C#のたった1行が画像をテキストに変換します。 OCRエンジンを初期化し、複雑なセットアップなしでテキストを直ちに読み取り、取得することを示します。
Get started making PDFs with NuGet now:
Install IronOCR with NuGet Package Manager
Copy and run this code snippet.
string text = new IronTesseract().Read("image.png").Text;Deploy to test on your live environment
最小限のワークフロー (5 つのステップ)
- IronOCRをダウンロードする - 画像からテキストへの変換のためのC# OCRライブラリ。
IronTesseractクラスを使って、画像からテキストを即座に読み取ります 。
- 画像フィルタを適用して、低画質スキャンでの OCR 精度を向上させる 。
- ダウンロード可能な言語パックで複数の言語を処理する 。
- 検索可能な PDF として結果をエクスポートしたり、テキスト文字列を抽出したり 。
今日あなたのプロジェクトでIronOCRを無料トライアルで使用開始。
基本的なOCRのためのIronOCR C#チュートリアルを使用するには?
このIron Tesseract C#の例はIronOCRを使って画像からテキストを読み取る最も簡単な方法を示しています。 `IronOcr.IronTesseract`クラスはテキストを取り出し、文字列として返します。
```csharp
// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup
using IronOcr;
using System;
try
{
// Initialize IronTesseract for OCR operations
var ocrEngine = new IronTesseract();
// Path to your image file - supports PNG, JPG, TIFF, BMP, and more
var imagePath = @"img\Screenshot.png";
// Create input and perform OCR to convert image to text
using (var input = new OcrInput(imagePath))
{
// Read text from image and get results
OcrResult result = ocrEngine.Read(input);
// Display extracted text
Console.WriteLine(result.Text);
}
}
catch (OcrException ex)
{
// Handle OCR-specific errors
Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
// Handle general errors
Console.WriteLine($"Error: {ex.Message}");
}
```
このコードは、鮮明な画像で100%の精度を達成し、テキストを正確に抽出します:
```txt
IronOCR Simple Example
In this simple example we test the accuracy of our C# OCR library to read text from a PNG Image. This is a very basic test, but things will get more complicated as the tutorial continues.
The quick brown fox jumps over the lazy dog
```
`IronTesseract`クラスは、複雑なOCR操作を内部で処理します。 自動的にアライメントをスキャンし、解像度を最適化し、AIを使用してIronOCRを使用して画像からテキストを人間レベルの精度で読み取ります。
画像解析、エンジンの最適化、インテリジェントなテキスト認識など、舞台裏では高度な処理が行われていますが、OCRプロセスは人間の読書スピードに匹敵するものでありながら、並外れた精度レベルを維持しています。
[100%の精度でC# OCR画像をテキストに変換するIronOCRの簡単な例](/img/tutorials/how-to-read-text-from-an-image-in-csharp-net/Example1.png)。
*完璧な精度でPNG画像からテキストを抽出するIronOCRの能力を示すスクリーンショット*。
Tesseractの設定なしで高度なC# OCRを実装するには?
C#で画像をテキストに変換する際に最適なパフォーマンスを必要とするプロダクションアプリケーションでは、`OcrInput`と`IronTesseract`クラスを一緒に使用してください。 このアプローチでは、OCRプロセスをきめ細かく制御できます。
### OcrInputクラスの特徴
- 複数の画像フォーマットを処理します:JPEG、TIFF、GIF、BMP、PNG
- 完全なPDFまたは特定のページをインポート
- コントラスト、解像度、画質を自動的に向上させます。
- 回転、スキャンノイズ、傾き、ネガ画像を補正します。
### IronTesseractクラスの特徴
- 125以上のパッケージ言語へのアクセス
- Tesseract 5、4、3エンジンを含む
- 文書タイプ指定(スクリーンショット、スニペット、文書全体)
- 統合バーコード読み取り機能
- 複数の出力形式:検索可能なPDF、HOCR HTML、DOMオブジェクト、文字列
OcrInputとIronTesseractを使い始めるには?
このC#チュートリアルの推奨構成は以下のとおりです:
```csharp
using IronOcr;
// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();
// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
// Process specific pages from multi-page TIFF files
int[] pageIndices = new int[] { 1, 2 };
// Load TIFF frames - perfect for scanned documents
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
// Execute OCR to read text from image using IronOCR
OcrResult result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
```
この構成では、中程度の品質のスキャンで常に完璧に近い精度を達成しています。 `LoadImageFrames`メソッドは、複数ページのドキュメントを効率的に処理するため、バッチ処理シナリオに最適です。
.
*IronOCRの複数ページのテキスト抽出機能を示すサンプルTIFFドキュメント*。
TIFFのようなスキャンされたドキュメントの画像やBarCodeからテキストを読み取る機能は、IronOCRがいかに複雑なOCRタスクを簡素化するかを示しています。 このライブラリは実世界のドキュメントを得意としており、複数ページのTIFFや[PDFテキスト抽出](/csharp/ocr/how-to/input-pdfs/)をシームレスに処理します。
### IronOCRはどのように低品質スキャンを処理しますか?
*Low-resolution document with noise that IronOCR can process accurately using image filters*
歪みやデジタルノイズを含む不完全なスキャンを扱う場合、**IronOCRは他のC# OCRライブラリ**を凌駕します。 これは、原始的なテストイメージではなく、実世界のシナリオのために特別に設計されています。
```csharp
// Advanced Iron Tesseract C# example for low-quality images
using IronOcr;
using System;
var ocr = new IronTesseract();
try
{
using (var input = new OcrInput())
{
// Load specific pages from poor-quality TIFF
var pageIndices = new int[] { 0, 1 };
input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices);
// Apply deskew filter to correct rotation and perspective
input.Deskew(); // Critical for improving accuracy on skewed scans
// Perform OCR with enhanced preprocessing
OcrResult result = ocr.Read(input);
// Display results
Console.WriteLine("Recognized Text:");
Console.WriteLine(result.Text);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error during OCR: {ex.Message}");
}
```
`Input.Deskew()`を使用すると、低品質のスキャンで精度が**99.8**まで向上し、高品質の結果とほぼ一致します。 これは、Tesseractの複雑さを伴わないC# OCRにIronOCRが選ばれる理由を示しています。
画像フィルターを使用すると、処理時間が若干長くなりますが、全体的なOCR処理時間は大幅に短縮されます。 適切なバランスを見つけるには、文書の品質が重要です。
ほとんどのシナリオでは、`Input.Deskew()`と`Input.DeNoise()`が OCR パフォーマンスの確実な改善を提供します。 [画像前処理技術](/csharp/ocr/tutorials//c-sharp-ocr-image-filters/)についてもっと学んでください。
## OCRのパフォーマンスと速度を最適化するには?
C#で画像をテキストに変換する際、OCRの速度に最も影響するのは入力品質です。 ノイズを最小限に抑えた高DPI(~200dpi)が、最も速く正確な結果を生み出します。
IronOCRは不完全な文書の修正を得意としていますが、この強化にはさらに処理時間が必要です。
圧縮アーチファクトの少ない画像形式を選択してください。 TIFFとPNGは通常、デジタルノイズが少ないため、JPEGよりも速い結果が得られます。
### どの画像フィルターがOCR速度を向上させますか?
以下のフィルタは、C# OCR 画像からテキストへのワークフローのパフォーマンスを劇的に向上させます:
- **`OcrInput.Rotate(double度)`:**画像を時計回りに回転させます(反時計回りはマイナス)。
- **`OcrInput.Binarize()`:**白黒に変換し、低コントラストのシナリオでパフォーマンスを向上させます。
- **`OcrInput.ToGrayScale()`:**潜在的な速度向上のためにグレースケールに変換します。
- **`OcrInput.Contrast()`:**より正確なコントラストを自動調整します。
- **`OcrInput.DeNoise()`:**ノイズが予想される場合にデジタルアーチファクトを除去します。
- **`OcrInput.Invert()`:**白地に黒のテキストの色を反転します。
- **`OcrInput.Dilate()`:**テキストの境界を拡張します。
- **`OcrInput.Erode()`:**テキスト境界を縮小します。
- **`OcrInput.Deskew()`:**アライメントを修正します。
- **`OcrInput.DeepCleanBackgroundNoise()`:**積極的なノイズ除去。
- **`OcrInput.EnhanceResolution`:**低解像度の画像品質を向上させます。
### IronOCRを最高速度に設定するには?
これらの設定を使用して、高品質のスキャンを処理する際の速度を最適化します:
```csharp
using IronOcr;
// Configure for speed - ideal for clean documents
IronTesseract ocr = new IronTesseract();
// Exclude problematic characters to speed up recognition
ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\\";
// Use automatic page segmentation
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
// Select fast English language pack
ocr.Language = OcrLanguage.EnglishFast;
using (OcrInput input = new OcrInput())
{
// Load specific pages from document
int[] pageIndices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
// Read with optimized settings
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
```
この最適化されたセットアップは、**99.8%**の精度を維持しながら、デフォルトの設定と比較して**35%のスピード向上**を達成しています。
## C#のOCRを使用して画像の特定領域を読み取るには?
下記のTesseract C#の例では、`System.Drawing.Rectangle`を使って特定の領域をターゲットにする方法を示しています。 このテクニックは、テキストが予測可能な場所に表示される、標準化されたフォームの処理に非常に有効です。
### IronOCRはトリミングされた領域をより速く処理できますか?
ピクセルベースの座標を使用することで、OCRを特定の領域に限定し、速度を劇的に向上させ、不要なテキストの抽出を防ぐことができます:
```csharp
using IronOcr;
using IronSoftware.Drawing;
// Initialize OCR engine for targeted region processing
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Define exact region for OCR - coordinates in pixels
var contentArea = new System.Drawing.Rectangle(
x: 215,
y: 1250,
width: 1335,
height: 280
);
// Load image with specific area - perfect for forms and invoices
input.AddImage("img/ComSci.png", contentArea);
// Process only the defined region
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
```
この的を絞ったアプローチにより、関連するテキストのみを抽出しながら、**41%のスピード向上**を実現しました。 [請求書](/csharp/ocr/blog/using-ironocr/invoice-ocr-csharp-tutorial/)、小切手、フォームのような構造化されたドキュメントに最適です。 [PDFのOCR操作](/csharp/ocr/how-to/input-pdfs/)でも、同じトリミング技術がシームレスに機能します。
[C#でのターゲットOCR領域抽出を示すコンピュータサイエンス文書](/img/tutorials/how-to-read-text-from-an-image-in-csharp-net/ComSci.png)。
*IronOCRの矩形選択を使用した正確な領域ベースのテキスト抽出を示すドキュメント*。
## IronOCRはいくつの言語をサポートしていますか?
IronOCRは便利な言語パックを通して**125の国際言語**を提供します。 弊社のウェブサイトから、または[NuGetパッケージマネージャ](https://www.nuget.org/packages?q=IronOcr.Languages)経由でDLLとしてダウンロードしてください。
Install language packs through the NuGet interface ([search "IronOcr.Languages"](https://www.nuget.org/packages?q=IronOcr.Languages)) or visit the [complete language pack listing](/csharp/ocr/languages/).
対応言語には、アラビア語、中国語(簡体字/繁体字)、日本語、韓国語、ヒンディー語、ロシア語、ドイツ語、フランス語、スペイン語、その他115言語以上が含まれ、それぞれが正確なテキスト認識のために最適化されています。
### 複数の言語で OCR を実装するには?
このIronOCR C#チュートリアルの例はアラビア語のテキスト認識を示しています:
```shell
:InstallCmd Install-Package IronOcr.Languages.Arabic
```
.
OcrResult/code> には、ページ、段落、行、単語、文字という階層的なコレクションが含まれます。 すべての要素には、場所、フォント情報、信頼度スコアなどの詳細なメタデータが含まれます。
個々の要素(段落、単語、BarCode)は、画像またはビットマップとしてエクスポートして、さらに処理することができます:
```csharp
using System;
using IronOcr;
using IronSoftware.Drawing;
// Configure with barcode support
IronTesseract ocr = new IronTesseract
{
Configuration = { ReadBarCodes = true }
};
using OcrInput input = new OcrInput();
// Process multi-page document
int[] pageIndices = { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
OcrResult result = ocr.Read(input);
// Navigate the complete results hierarchy
foreach (var page in result.Pages)
{
// Page-level data
int pageNumber = page.PageNumber;
string pageText = page.Text;
int pageWordCount = page.WordCount;
// Extract page elements
OcrResult.Barcode[] barcodes = page.Barcodes;
AnyBitmap pageImage = page.ToBitmap();
double pageWidth = page.Width;
double pageHeight = page.Height;
foreach (var paragraph in page.Paragraphs)
{
// Paragraph properties
int paragraphNumber = paragraph.ParagraphNumber;
string paragraphText = paragraph.Text;
double paragraphConfidence = paragraph.Confidence;
var textDirection = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Line details including baseline information
string lineText = line.Text;
double lineConfidence = line.Confidence;
double baselineAngle = line.BaselineAngle;
double baselineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Word-level data
string wordText = word.Text;
double wordConfidence = word.Confidence;
// Font information (when available)
if (word.Font != null)
{
string fontName = word.Font.FontName;
double fontSize = word.Font.FontSize;
bool isBold = word.Font.IsBold;
bool isItalic = word.Font.IsItalic;
}
foreach (var character in word.Characters)
{
// Character-level analysis
string charText = character.Text;
double charConfidence = character.Confidence;
// Alternative character choices for spell-checking
OcrResult.Choice[] alternatives = character.Choices;
}
}
}
}
}
```
## 概要
IronOCRはC#開発者に最先端の[TesseractAPI実装](/csharp/ocr/)を提供し、Windows、Linux、Macの各プラットフォームでシームレスに動作します。 IronOCRは画像からテキストを正確に読み取ることができ、たとえ不完全な文書であっても、基本的なOCRソリューションとは一線を画しています。
このライブラリーのユニークな機能には、バーコード読み取り機能や、検索可能なPDFやHOCR HTMLとして結果をエクスポートする機能などがあり、標準的なTesseractの実装では利用できない機能です。
### 前進する
よくある質問
Tesseract を使用せずに C# で画像をテキストに変換するにはどうすればよいですか?
IronOCR を使用して C# で画像をテキストに変換できます。IronOCR は、画像からテキストへの変換を直接処理する組み込みメソッドでこのプロセスを簡素化します。
低品質画像での OCR 精度を向上させるにはどうすればよいですか?
IronOCR には、Input.Deskew() および Input.DeNoise() などの画像フィルターが用意されており、傾きを補正し、ノイズを軽減することで低品質の画像を強化し、OCR の精度を大幅に向上させることができます。
C# で OCR を使用して複数ページのドキュメントからテキストを抽出する手順は何ですか?
複数ページのドキュメントからテキストを抽出するには、IronOCR を使用すると、LoadPdf() などのメソッドを使用して各ページをロードおよび処理し、各ページを効果的にテキストに変換できます。
画像からバーコードとテキストを同時に読み取ることは可能ですか?
はい、IronOCR は 1 つの画像からテキストとバーコードの両方を読み取ることができます。ocr.Configuration.ReadBarCodes = true を有効にすることで、テキストとバーコード データの両方を抽出できます。
複数の言語でドキュメントを処理するための OCR をセットアップするにはどうすればよいですか?
IronOCR は 125 を超える言語をサポートしており、ocr.Language コマンドを使用して主要な言語を設定し、ocr.AddSecondaryLanguage() コマンドを使用して追加言語を追加することで、多言語ドキュメントの処理を可能にします。
OCR 結果をさまざまな形式でエクスポートするために利用可能なメソッドは何ですか?
IronOCR は複数のメソッドを提供して OCR 結果をエクスポートできます。たとえば、PDF の場合は SaveAsSearchablePdf()、プレーンテキストの場合は SaveAsTextFile()、HOCR HTML 形式の場合は SaveAsHocrFile() があります。
大型画像ファイルの OCR 処理速度を最適化するにはどうすればよいですか?
OCR処理速度を最適化するには、IronOCR の OcrLanguage.EnglishFast を使用して高速な言語認識を実現し、System.Drawing.Rectangle を使用して 特定の領域を定義し、処理時間を短縮します。
保護されたPDFファイルのOCR処理をどのように扱うべきですか?
保護された PDF を処理する際は、正しいパスワードと共に LoadPdf() メソッドを使用します。IronOCR は、ページを画像に自動的に変換して、画像ベースの PDF を処理します。
OCR 結果が正確でない場合はどうすればよいですか?
OCR 結果が正確でない場合は、IronOCR の Input.Deskew() や Input.DeNoise() などの画像強化機能を使用し、正しい言語パックがインストールされていることを確認してください。
OCR プロセスをカスタマイズして特定の文字を除外することはできますか?
はい、IronOCR を利用して、BlackListCharacters プロパティを使用して特定の文字を除外することにより、精度とプロセス速度を改善し、関連するテキストにのみ焦点を当てるように OCR プロセスをカスタマイズできます。
OcrInputとIronTesseractを使い始めるには?
このC#チュートリアルの推奨構成は以下のとおりです:
```csharp
using IronOcr;
// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();
// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
// Process specific pages from multi-page TIFF files
int[] pageIndices = new int[] { 1, 2 };
// Load TIFF frames - perfect for scanned documents
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
// Execute OCR to read text from image using IronOCR
OcrResult result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
```
この構成では、中程度の品質のスキャンで常に完璧に近い精度を達成しています。 `LoadImageFrames`メソッドは、複数ページのドキュメントを効率的に処理するため、バッチ処理シナリオに最適です。
.
*IronOCRの複数ページのテキスト抽出機能を示すサンプルTIFFドキュメント*。
TIFFのようなスキャンされたドキュメントの画像やBarCodeからテキストを読み取る機能は、IronOCRがいかに複雑なOCRタスクを簡素化するかを示しています。 このライブラリは実世界のドキュメントを得意としており、複数ページのTIFFや[PDFテキスト抽出](/csharp/ocr/how-to/input-pdfs/)をシームレスに処理します。
### IronOCRはどのように低品質スキャンを処理しますか?
*Low-resolution document with noise that IronOCR can process accurately using image filters*
歪みやデジタルノイズを含む不完全なスキャンを扱う場合、**IronOCRは他のC# OCRライブラリ**を凌駕します。 これは、原始的なテストイメージではなく、実世界のシナリオのために特別に設計されています。
```csharp
// Advanced Iron Tesseract C# example for low-quality images
using IronOcr;
using System;
var ocr = new IronTesseract();
try
{
using (var input = new OcrInput())
{
// Load specific pages from poor-quality TIFF
var pageIndices = new int[] { 0, 1 };
input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices);
// Apply deskew filter to correct rotation and perspective
input.Deskew(); // Critical for improving accuracy on skewed scans
// Perform OCR with enhanced preprocessing
OcrResult result = ocr.Read(input);
// Display results
Console.WriteLine("Recognized Text:");
Console.WriteLine(result.Text);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error during OCR: {ex.Message}");
}
```
`Input.Deskew()`を使用すると、低品質のスキャンで精度が**99.8**まで向上し、高品質の結果とほぼ一致します。 これは、Tesseractの複雑さを伴わないC# OCRにIronOCRが選ばれる理由を示しています。
画像フィルターを使用すると、処理時間が若干長くなりますが、全体的なOCR処理時間は大幅に短縮されます。 適切なバランスを見つけるには、文書の品質が重要です。
ほとんどのシナリオでは、`Input.Deskew()`と`Input.DeNoise()`が OCR パフォーマンスの確実な改善を提供します。 [画像前処理技術](/csharp/ocr/tutorials//c-sharp-ocr-image-filters/)についてもっと学んでください。
## OCRのパフォーマンスと速度を最適化するには?
C#で画像をテキストに変換する際、OCRの速度に最も影響するのは入力品質です。 ノイズを最小限に抑えた高DPI(~200dpi)が、最も速く正確な結果を生み出します。
IronOCRは不完全な文書の修正を得意としていますが、この強化にはさらに処理時間が必要です。
圧縮アーチファクトの少ない画像形式を選択してください。 TIFFとPNGは通常、デジタルノイズが少ないため、JPEGよりも速い結果が得られます。
### どの画像フィルターがOCR速度を向上させますか?
以下のフィルタは、C# OCR 画像からテキストへのワークフローのパフォーマンスを劇的に向上させます:
- **`OcrInput.Rotate(double度)`:**画像を時計回りに回転させます(反時計回りはマイナス)。
- **`OcrInput.Binarize()`:**白黒に変換し、低コントラストのシナリオでパフォーマンスを向上させます。
- **`OcrInput.ToGrayScale()`:**潜在的な速度向上のためにグレースケールに変換します。
- **`OcrInput.Contrast()`:**より正確なコントラストを自動調整します。
- **`OcrInput.DeNoise()`:**ノイズが予想される場合にデジタルアーチファクトを除去します。
- **`OcrInput.Invert()`:**白地に黒のテキストの色を反転します。
- **`OcrInput.Dilate()`:**テキストの境界を拡張します。
- **`OcrInput.Erode()`:**テキスト境界を縮小します。
- **`OcrInput.Deskew()`:**アライメントを修正します。
- **`OcrInput.DeepCleanBackgroundNoise()`:**積極的なノイズ除去。
- **`OcrInput.EnhanceResolution`:**低解像度の画像品質を向上させます。
### IronOCRを最高速度に設定するには?
これらの設定を使用して、高品質のスキャンを処理する際の速度を最適化します:
```csharp
using IronOcr;
// Configure for speed - ideal for clean documents
IronTesseract ocr = new IronTesseract();
// Exclude problematic characters to speed up recognition
ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\\";
// Use automatic page segmentation
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
// Select fast English language pack
ocr.Language = OcrLanguage.EnglishFast;
using (OcrInput input = new OcrInput())
{
// Load specific pages from document
int[] pageIndices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
// Read with optimized settings
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
```
この最適化されたセットアップは、**99.8%**の精度を維持しながら、デフォルトの設定と比較して**35%のスピード向上**を達成しています。
## C#のOCRを使用して画像の特定領域を読み取るには?
下記のTesseract C#の例では、`System.Drawing.Rectangle`を使って特定の領域をターゲットにする方法を示しています。 このテクニックは、テキストが予測可能な場所に表示される、標準化されたフォームの処理に非常に有効です。
### IronOCRはトリミングされた領域をより速く処理できますか?
ピクセルベースの座標を使用することで、OCRを特定の領域に限定し、速度を劇的に向上させ、不要なテキストの抽出を防ぐことができます:
```csharp
using IronOcr;
using IronSoftware.Drawing;
// Initialize OCR engine for targeted region processing
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Define exact region for OCR - coordinates in pixels
var contentArea = new System.Drawing.Rectangle(
x: 215,
y: 1250,
width: 1335,
height: 280
);
// Load image with specific area - perfect for forms and invoices
input.AddImage("img/ComSci.png", contentArea);
// Process only the defined region
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
```
この的を絞ったアプローチにより、関連するテキストのみを抽出しながら、**41%のスピード向上**を実現しました。 [請求書](/csharp/ocr/blog/using-ironocr/invoice-ocr-csharp-tutorial/)、小切手、フォームのような構造化されたドキュメントに最適です。 [PDFのOCR操作](/csharp/ocr/how-to/input-pdfs/)でも、同じトリミング技術がシームレスに機能します。
[C#でのターゲットOCR領域抽出を示すコンピュータサイエンス文書](/img/tutorials/how-to-read-text-from-an-image-in-csharp-net/ComSci.png)。
*IronOCRの矩形選択を使用した正確な領域ベースのテキスト抽出を示すドキュメント*。
## IronOCRはいくつの言語をサポートしていますか?
IronOCRは便利な言語パックを通して**125の国際言語**を提供します。 弊社のウェブサイトから、または[NuGetパッケージマネージャ](https://www.nuget.org/packages?q=IronOcr.Languages)経由でDLLとしてダウンロードしてください。
Install language packs through the NuGet interface ([search "IronOcr.Languages"](https://www.nuget.org/packages?q=IronOcr.Languages)) or visit the [complete language pack listing](/csharp/ocr/languages/).
対応言語には、アラビア語、中国語(簡体字/繁体字)、日本語、韓国語、ヒンディー語、ロシア語、ドイツ語、フランス語、スペイン語、その他115言語以上が含まれ、それぞれが正確なテキスト認識のために最適化されています。
### 複数の言語で OCR を実装するには?
このIronOCR C#チュートリアルの例はアラビア語のテキスト認識を示しています:
```shell
:InstallCmd Install-Package IronOcr.Languages.Arabic
```
.
OcrResult/code> には、ページ、段落、行、単語、文字という階層的なコレクションが含まれます。 すべての要素には、場所、フォント情報、信頼度スコアなどの詳細なメタデータが含まれます。
個々の要素(段落、単語、BarCode)は、画像またはビットマップとしてエクスポートして、さらに処理することができます:
```csharp
using System;
using IronOcr;
using IronSoftware.Drawing;
// Configure with barcode support
IronTesseract ocr = new IronTesseract
{
Configuration = { ReadBarCodes = true }
};
using OcrInput input = new OcrInput();
// Process multi-page document
int[] pageIndices = { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
OcrResult result = ocr.Read(input);
// Navigate the complete results hierarchy
foreach (var page in result.Pages)
{
// Page-level data
int pageNumber = page.PageNumber;
string pageText = page.Text;
int pageWordCount = page.WordCount;
// Extract page elements
OcrResult.Barcode[] barcodes = page.Barcodes;
AnyBitmap pageImage = page.ToBitmap();
double pageWidth = page.Width;
double pageHeight = page.Height;
foreach (var paragraph in page.Paragraphs)
{
// Paragraph properties
int paragraphNumber = paragraph.ParagraphNumber;
string paragraphText = paragraph.Text;
double paragraphConfidence = paragraph.Confidence;
var textDirection = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Line details including baseline information
string lineText = line.Text;
double lineConfidence = line.Confidence;
double baselineAngle = line.BaselineAngle;
double baselineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Word-level data
string wordText = word.Text;
double wordConfidence = word.Confidence;
// Font information (when available)
if (word.Font != null)
{
string fontName = word.Font.FontName;
double fontSize = word.Font.FontSize;
bool isBold = word.Font.IsBold;
bool isItalic = word.Font.IsItalic;
}
foreach (var character in word.Characters)
{
// Character-level analysis
string charText = character.Text;
double charConfidence = character.Confidence;
// Alternative character choices for spell-checking
OcrResult.Choice[] alternatives = character.Choices;
}
}
}
}
}
```
## 概要
IronOCRはC#開発者に最先端の[TesseractAPI実装](/csharp/ocr/)を提供し、Windows、Linux、Macの各プラットフォームでシームレスに動作します。 IronOCRは画像からテキストを正確に読み取ることができ、たとえ不完全な文書であっても、基本的なOCRソリューションとは一線を画しています。
このライブラリーのユニークな機能には、バーコード読み取り機能や、検索可能なPDFやHOCR HTMLとして結果をエクスポートする機能などがあり、標準的なTesseractの実装では利用できない機能です。
### 前進する
.
よくある質問
Tesseract を使用せずに C# で画像をテキストに変換するにはどうすればよいですか?
IronOCR を使用して C# で画像をテキストに変換できます。IronOCR は、画像からテキストへの変換を直接処理する組み込みメソッドでこのプロセスを簡素化します。
低品質画像での OCR 精度を向上させるにはどうすればよいですか?
IronOCR には、Input.Deskew() および Input.DeNoise() などの画像フィルターが用意されており、傾きを補正し、ノイズを軽減することで低品質の画像を強化し、OCR の精度を大幅に向上させることができます。
C# で OCR を使用して複数ページのドキュメントからテキストを抽出する手順は何ですか?
複数ページのドキュメントからテキストを抽出するには、IronOCR を使用すると、LoadPdf() などのメソッドを使用して各ページをロードおよび処理し、各ページを効果的にテキストに変換できます。
画像からバーコードとテキストを同時に読み取ることは可能ですか?
はい、IronOCR は 1 つの画像からテキストとバーコードの両方を読み取ることができます。ocr.Configuration.ReadBarCodes = true を有効にすることで、テキストとバーコード データの両方を抽出できます。
複数の言語でドキュメントを処理するための OCR をセットアップするにはどうすればよいですか?
IronOCR は 125 を超える言語をサポートしており、ocr.Language コマンドを使用して主要な言語を設定し、ocr.AddSecondaryLanguage() コマンドを使用して追加言語を追加することで、多言語ドキュメントの処理を可能にします。
OCR 結果をさまざまな形式でエクスポートするために利用可能なメソッドは何ですか?
IronOCR は複数のメソッドを提供して OCR 結果をエクスポートできます。たとえば、PDF の場合は SaveAsSearchablePdf()、プレーンテキストの場合は SaveAsTextFile()、HOCR HTML 形式の場合は SaveAsHocrFile() があります。
大型画像ファイルの OCR 処理速度を最適化するにはどうすればよいですか?
OCR処理速度を最適化するには、IronOCR の OcrLanguage.EnglishFast を使用して高速な言語認識を実現し、System.Drawing.Rectangle を使用して 特定の領域を定義し、処理時間を短縮します。
保護されたPDFファイルのOCR処理をどのように扱うべきですか?
保護された PDF を処理する際は、正しいパスワードと共に LoadPdf() メソッドを使用します。IronOCR は、ページを画像に自動的に変換して、画像ベースの PDF を処理します。
OCR 結果が正確でない場合はどうすればよいですか?
OCR 結果が正確でない場合は、IronOCR の Input.Deskew() や Input.DeNoise() などの画像強化機能を使用し、正しい言語パックがインストールされていることを確認してください。
OCR プロセスをカスタマイズして特定の文字を除外することはできますか?
はい、IronOCR を利用して、BlackListCharacters プロパティを使用して特定の文字を除外することにより、精度とプロセス速度を改善し、関連するテキストにのみ焦点を当てるように OCR プロセスをカスタマイズできます。

