C#を使用してOCRのDPIを設定する方法

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

IronOCRのOcrInputTargetDPIプロパティを設定し、OCRの精度を上げるために低解像度の画像をアップスケールしてください。 この設定により、100 DPIという低い解像度でも、ぼやけた文書やピクセル化された文書のテキスト認識を大幅に改善することができます。

DPI(Dots Per Inch)は、画質を測定し、スキャンした文書やデジタル写真の詳細レベルを決定します。ドキュメントのスキャンは高速で効率的ですが、特にデフォルト設定やクイックスキャン設定を使用した場合、低解像度のファイルになることがよくあります。 このような詳細がないため、テキストがぼやけて見えたり、ピクセル化されたりして、データ抽出の障害となります。

OCRの性能は画質に左右されます。 OCRエンジンは、文字の形状やパターンを分析して、機械可読テキストに変換します。 画像のDPIが低いと、各文字を明確に定義するのに十分なピクセルがないため、細かいディテールが失われ、不正確な結果につながります。 スキャンされたドキュメントやレガシーなデジタル化システムを扱う開発者にとって、DPI 最適化を理解することは、信頼性の高いテキスト抽出のために非常に重要です。

IronOCRはこれらの課題を効果的に処理します。 225DPIという低解像度のスキャンでも高い精度を実現しています。 このライブラリの画像前処理機能は、さまざまな画像品質の問題を自動的に検出して補正するため、多様なソースからのドキュメントの処理に適しています。 1行のコードでシンプルなOCRを実装する場合でも、複雑なドキュメント処理パイプラインを構築する場合でも、DPIの最適化は依然として重要な要素です。

クイックスタート: より鮮明な OCR 結果を得るための TargetDPI の設定

IronOCRを設定して、低解像度の画像を1行でアップスケールし、最小限の労力でテキストの明瞭度と認識度を向上させます。

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

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

    PM > Install-Package IronOcr

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

    var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrInput { TargetDPI = 300 }.LoadImage("low-res.png"));
  3. 実際の環境でテストするためにデプロイする

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

より良い OCR 結果のために DPI を設定するにはどうすればよいですか?

この例では、TargetDPI 機能の有効性を示すために、解像度が約 100 DPI と低いサンプル画像を使用し、人工的なノイズを加えています。 DPI 設定の構成方法を理解することは、画像の前処理を包括的に制御する OcrInput クラス を使用する際に不可欠です。

画像内の実際のテキストは、"テスト、テスト、テスト、ぼやけたテキスト、例、例、例"です。

低解像度の100 DPIサンプルで、ぼやけたピクセル化されたテキストがOCR入力品質の低さを示しています.

画像の DPI をアップスケールするにはどのようなコードが必要ですか?

この例では、画像の解像度を上げるためにTargetDPIを300に設定します。 次に、入力画像を読み込み、抽出したテキストをTextで、信頼度をConfidenceで表示します。 最適なDPI設定は、ユースケースやソースの品質にもよりますが、通常250~400DPIの間です。 複数の画像フィルタを含む高度なシナリオについては、OCR画像最適化フィルタに関するガイドを参照してください。

:path=/static-assets/ocr/content-code-examples/how-to/dpi-setting.cs
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();

using var ocrInput = new OcrInput();
// Set the target DPI to 300 for better OCR accuracy
ocrInput.TargetDPI = 300;

ocrInput.LoadImage(@"images\image.png");

// Perform OCR on the image with the specified DPI
var ocrResult = ocrTesseract.Read(ocrInput);
// Display the text extracted from the image
Console.WriteLine(ocrResult.Text);
// Display the confidence level of the OCR result
Console.WriteLine(ocrResult.Confidence);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

アップスケールDPIでどのような結果が期待できますか?

OCR 結果を表示するデバッグコンソール: DPI 最適化後に 85% の信頼スコアでテキストを抽出.

出力はIronOCRが85%の信頼度を達成したことを示しています。 ノイズが多く、ソース画像の初期DPIが低いにもかかわらず、結果は正確で、アップスケーリング機能の有効性を実証しています。 この精度レベルは、低品質な入力に苦労する従来のOCRソリューションを凌ぐものです。 さらに高い精度が要求されるアプリケーションでは、進捗追跡を実装して、信頼度をリアルタイムで監視し、設定を動的に調整することを検討してください。

IronOCRには、低解像度の画像を自動的にアップスケーリングする機能が組み込まれています。 このアプローチにより、外部の画像処理ツールが不要になり、ワークフローが合理化され、依存関係が減少します。 WindowsでIronOCRを使い始める開発者のために、この機能は追加設定なしですぐに使えます。

DPI設定はOCRの精度にどのように影響しますか?

違いを説明するために、TargetDPI プロパティを設定せずに同じ低解像度の画像を処理した結果を示します。 この比較は、信頼性の高いテキスト抽出に適切なDPI設定が重要である理由を示しています。

正しいDPIを見つけるには、バランスが必要です。 高DPIは精度が高くなりますが、処理速度が遅くなります; 低 DPI は高速ですが、信頼性は低くなります。 迷ったときは、IronTesseractの自動前処理で最適な設定を決定してください。 TargetDPIプロパティを0に設定することで、自動アップスケーリングを無効にすることができます。特殊なアプリケーションについては、Tesseract画像のDPI最適化に関するガイドをご覧ください。

DPIアップスケーリングなしで何が起こりますか?

デバッグコンソールでOCRの結果が悪いことを示す: 信頼度79%のテキストが文字化けしており、DPIの抽出品質が低いことがわかる

アップスケーリングを行わないと、信頼スコアは 79% に低下し、抽出されたテキストの精度は大幅に低下します。 この比較では、TargetDPI を設定することで、低画質画像の OCR 結果がどのように改善されるかを強調します。 表やフォーム、複数列のレイアウトを含む複雑な文書を扱う場合、その違いはより顕著になります。

PDFドキュメントのDPIを設定するには?

PDFを処理する際、IronOCRはドキュメント全体をターゲットDPIにアップスケールします。 この包括的なアプローチにより、文書全体の一貫した品質が保証されます。これは、ビジネスアプリケーションの PDF OCR テキスト抽出 にとって重要です。 検索可能なPDFを扱うような高度なPDF処理では、適切なDPI設定がさらに重要になります。

DPIが高いほどOCR結果が良くなることがよくありますが、最適な設定はPDFによって異なります。 どの値を使用すればよいかわからない場合は、DPIをデフォルト設定のままにしておき、IronOCRが自動的に最適な設定を決定します。 ライブラリのアルゴリズムは、フォントサイズ、画質、コンテンツ密度などの文書の特性を分析し、適切な前処理パラメータを選択します。

// Example: Processing a PDF with custom DPI settings
using IronOcr;

var ocrTesseract = new IronTesseract();

using var ocrInput = new OcrInput();

// Configure DPI specifically for PDF processing
ocrInput.TargetDPI = 250; // Lower DPI often works well for PDFs

// Load a multi-page PDF document
ocrInput.LoadPdf(@"documents\scanned-report.pdf");

// Optional: Process only specific pages
// ocrInput.LoadPdf(@"documents\scanned-report.pdf", PageSelection: new int[] {1, 3, 5});

// Apply additional filters if needed
ocrInput.DeNoise(); // Remove digital noise
ocrInput.Sharpen(); // Enhance text edges

// Perform OCR with confidence tracking
var ocrResult = ocrTesseract.Read(ocrInput);

// Process results page by page
foreach (var page in ocrResult.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}: {page.Confidence}% confidence");
    Console.WriteLine(page.Text);
}
// Example: Processing a PDF with custom DPI settings
using IronOcr;

var ocrTesseract = new IronTesseract();

using var ocrInput = new OcrInput();

// Configure DPI specifically for PDF processing
ocrInput.TargetDPI = 250; // Lower DPI often works well for PDFs

// Load a multi-page PDF document
ocrInput.LoadPdf(@"documents\scanned-report.pdf");

// Optional: Process only specific pages
// ocrInput.LoadPdf(@"documents\scanned-report.pdf", PageSelection: new int[] {1, 3, 5});

// Apply additional filters if needed
ocrInput.DeNoise(); // Remove digital noise
ocrInput.Sharpen(); // Enhance text edges

// Perform OCR with confidence tracking
var ocrResult = ocrTesseract.Read(ocrInput);

// Process results page by page
foreach (var page in ocrResult.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}: {page.Confidence}% confidence");
    Console.WriteLine(page.Text);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

[{w:( TargetDPIの最大値は32,766です。この制限を超えるDPIを設定すると例外が発生します。 これは、結果の画像寸法が Tesseract の最大サポートサイズである 32,767 x 32,767 ピクセルを超えるために発生します。 制限を超えると、次のエラー メッセージが表示されます。 "TargetDPI が高すぎるため、Tesseract では画像が大きすぎます ({new_width} x {new_height})。" Tesseractの最大画像サイズは32767 x 32767です。

大量の文書を処理するエンタープライズアプリケーションでは、動的なDPI調整戦略の導入を検討してください。 適度な設定(300 DPI)から始め、信頼度スコアに基づいて調整してください。 このアプローチでは、処理速度と精度のバランスをとり、さまざまな種類のドキュメントで最適なパフォーマンスを実現します。DPIの最適化を他の前処理技術と組み合わせることで、難易度の高い文書に対してより良い結果を得ることができます。

特定のドキュメントタイプを扱う場合、DPI要件が異なることがあります。 たとえば、ナンバープレートを読むには、文字サイズが小さく、カメラの角度によって画像が歪む可能性があるため、通常、高いDPI設定が必要です。 同様に、MICR小切手の処理では、特殊なMICRフォントの文字を正確に取り込むために、特定のDPI設定が役立ちます。

OCRをウェブアプリケーションやクラウドサービスに統合する開発者にとって、DPIの最適化を理解することは、処理時間とサーバーリソースを管理する上で非常に重要になります。 DPI設定を微調整できるため、特定のアプリケーション要件やインフラの制約に基づいて、精度とパフォーマンスのバランスを最適化できます。

よくある質問

DPIとは何ですか?なぜOCRの精度にDPIが関係するのですか?

DPI(Dots Per Inch)は画質を測定し、スキャンした文書の詳細レベルを決定します。OCRの精度にとって、DPIが高ければ高いほど、より明確な文字定義を意味します。IronOCRは高度な画像前処理機能により、高い精度を維持しながら225DPIという低い解像度の画像を扱うことができます。

低解像度画像のOCR結果を改善するにはどうすればよいですか?

低解像度の画像をアップスケールするには、IronOCRのOcrInputクラスのTargetDPIプロパティを設定します。例えば、TargetDPIを300に設定すると、100DPI程度の低解像度の文書であっても、ぼやけたりピクセル化された文書のテキスト認識を大幅に改善することができます。

C#でOCRのDPIを設定する最も簡単な方法は何ですか?

IronOCRを使ってDPIを1行のコードで設定することができます: var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrInput { TargetDPI = 300 }.LoadImage("low-res.png")).これにより、テキストがより鮮明に認識されるよう、画像が自動的にアップスケールされます。

解像度の低いスキャン文書でも、OCRは効果的に機能しますか?

IronOCRは低解像度のスキャン文書を効果的に処理するように設計されています。225DPIという低解像度のスキャンでも高い精度を達成し、さまざまな品質問題を検出して補正する自動画像前処理機能を備えています。

OCRのDPI設定を実装するための基本的な手順は?

プロセスには5つのステップがあります:1) IronOCRライブラリのダウンロード、2) 新しいOcrInputオブジェクトのインスタンス化、3) TargetDPIプロパティを希望の値に設定、4) LoadImageメソッドを使って画像をロード、5) Readメソッドを使ってテキストを抽出。

デフォルトのスキャン設定では、OCRのパフォーマンスが低下することが多いのはなぜですか?

デフォルトまたはクイックスキャン設定では、時間とストレージスペースを節約するために、通常、低解像度のファイルが作成されます。その結果、テキストが不鮮明になったり、ピクセル化されたりして、細かいディテールが失われ、OCRエンジンが文字の形状を正確に識別することが難しくなります。IronOCRのTargetDPI機能はこの制限を克服するのに役立ちます。

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

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

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

準備はできましたか?
Nuget ダウンロード 5,246,844 | バージョン: 2025.12 リリース