C# でフィルターウィザードを使用して OCR を向上させる方法

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

OCR プロセス用に画像を前処理して準備するとなると、大変な作業になることがあります。 画像には複数のフィルターを使用できます。 ただし、どの組み合わせが画像に最も適しているかを試してテストするのは、多くの場合ケースバイケースであるため、複雑になる可能性があります。 どの方法が最良の結果をもたらすかを検証するために、さまざまな組み合わせを繰り返し試す必要があるため、このプロセス自体は非常に時間がかかります。

ただし、IronOCR はOcrInputFilterWizard導入することで、これを効果的かつ簡単に処理する方法を提供します。 フィルター ウィザードは、前処理フィルターの組み合わせを自動的に評価し、OCR の信頼性と精度を最大限に高めます。 最適な設定を探すために"ブルートフォース"スキャンを実行し、さらに最適なフィルターの組み合わせをコード スニペットとして返すため、開発者は結果を簡単に再現できます。

このハウツー ガイドでは、フィルター ウィザードの動作例を簡単に説明し、フィルター ウィザードで使用されるコード スニペットとパラメーターを紹介します。

クイックスタート: 理想的な画像フィルターチェーンを自動的に検出する

IronOCR のフィルター ウィザードを使用すると、すべての前処理フィルターの組み合わせをすばやく実行し、推測することなく、パフォーマンスが最も優れたコード スニペットを取得できます。 たった 1 行で、最高の信頼スコアと、類似画像に使用する正確な C# フィルター チェーンの両方が生成されます。

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

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

    PM > Install-Package IronOcr

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

    string code = OcrInputFilterWizard.Run("image.png", out double confidence, new IronTesseract());
  3. 実際の環境でテストするためにデプロイする

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

フィルターウィザードの例

OcrInputFilterWizard.Runメソッドは、入力イメージ、結果の信頼レベルの出力パラメータ、および Tesseract Engine インスタンスの 3 つのパラメータを受け取ります。

これは、さまざまな前処理フィルターの組み合わせを繰り返し組み合わせるブルートフォース方式を使用して動作し、最高の信頼スコアを実現します。 最後に最も高い信頼スコアによって、入力画像に理想的に適用する前処理画像フィルターのセットが決まります。

フィルター ウィザードにはプリセットがなく、試すことができる組み合わせに制限がないことに注意してください。 フィルター ウィザードの主な目的は、さまざまな画像フィルターの組み合わせをテストして、可能な限り最高の信頼スコアを達成することです。

組み合わせて使用できるすべてのフィルターのリストを次に示します。 これらはすべて IronOCR ライブラリ内で使用できるフィルター メソッドであることに注意してください。

  • input.Contrast()
  • input.Sharpen()
  • input.Binarize()
  • input.ToGrayScale()
  • input.Invert()
  • input.Deskew()
  • input.Scale(...)
  • input.Denoise()
  • input.DeepCleanBackgroundNoise()
  • input.EnhanceResolution()
  • input.Dilate()input.Erode()

それぞれのフィルターの機能について詳しく知りたい場合は、画像フィルターに関する詳細なチュートリアルを参照してください。

警告 これはブルートフォース方式であるため、イメージに最適な結果を見つけるために多くの可能性をテストするため、この操作が完了するまでに多少時間がかかります。

入力

この入力では、フィルター ウィザードの機能を説明するために、人工的なノイズの多いスクリーンショットを使用します。

入力画像

コード

:path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-process.cs
using IronOcr;
using System;

// Initialize the Tesseract engine
var ocr = new IronTesseract();

// 1. Pass the image path ("noise.png").
// 2. Pass an 'out' variable to store the best confidence score found.
// 3. Pass the tesseract instance to be used for testing.
string codeToRun = OcrInputFilterWizard.Run("noise.png", out double confidence, ocr);

// The 'confidence' variable is now populated with the highest score achieved.
Console.WriteLine($"Best Confidence Score: {confidence}");

// 'codeToRun' holds the exact C# code snippet that achieved this score.
// The returned string is the code you can use to filter similar images.
Console.WriteLine("Recommended Filter Code:");
Console.WriteLine(codeToRun);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力

フィルターウィザードからの出力

出力からわかるように、フィルター ウィザードは、すべての組み合わせを通じて、この特定の画像で達成できる最高の信頼度は 65% であると判断しました。

警告入力画像は大きく歪んでおり、人工的なノイズの影響を強く受けています。これは、IronOCRのフィルタウィザードが困難な状況下でもどのように役立つかを示すための極端な例です。

フィルターウィザードの最適な組み合わせ

フィルター ウィザードが実行されたら、提供されたコード スニペットに従うことができます。 結果と信頼性を検証するために、これらの設定を入力画像に適用します。

コード

:path=/static-assets/ocr/content-code-examples/how-to/filter-wizard-best-combination.cs
using IronOcr;
using System;

// Initialize the Tesseract engine
var ocrTesseract = new IronTesseract();

// Load the image into an OcrInput object
using (var input = new OcrImageInput("noise.png"))
{
    // Apply the exact filter chain recommended by the Wizard's output
    input.Invert();
    input.DeNoise();
    input.Contrast();
    input.AdaptiveThreshold();

    // Run OCR on the pre-processed image
    OcrResult result = ocrTesseract.Read(input);

    // Print the final result and confidence
    Console.WriteLine($"Result: {result.Text}");
    Console.WriteLine($"Confidence: {result.Confidence}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力

画像からの出力

ご覧のとおり、IronOCR は、このようにひどく歪んだ状況でもほとんどのテキストを認識でき、信頼度レベルはフィルター ウィザードによって報告されたものと一致しています。

よくある質問

IronOCRのフィルタウィザードとは何ですか?

IronOCRのフィルタウィザードは、特定の画像タイプに合わせたカスタム画像処理コードを生成することで、OCRの精度を向上させるために設計されたツールです。

フィルタウィザードはどのようにしてOCRの精度を改善しますか?

フィルタウィザードは、ユーザーがOCRを実行する前に画像に適用できるカスタム画像処理フィルタを作成できるようにすることで、OCR精度を向上させ、より良いテキスト認識結果を確保します。

フィルタウィザードを異なる画像タイプに使用できますか?

はい、フィルタウィザードはさまざまな画像タイプ用のカスタム処理コードを生成するために使用でき、異なるOCRのニーズに対して汎用性があります。

フィルタウィザードは初心者には使いにくいですか?

フィルタウィザードは使いやすさを念頭に置いて設計されており、初心者や経験豊富なユーザーの両方に対してOCRプロジェクトを強化するためにアクセス可能です。

OCRでカスタム画像処理コードを使用することの利点は何ですか?

カスタム画像処理コードを使用することで、特に低コントラストの画像やノイズのある画像などの厳しい条件下で、テキスト抽出精度が大幅に向上する可能性があります。

フィルタウィザードを使用するのにプログラミングスキルが必要ですか?

プログラミングスキルは有益ですが、フィルタウィザードは画像処理コードの生成プロセスを簡素化し、技術的な背景の異なるユーザーに対しても取り組みやすくします。

フィルタウィザードはバッチ処理を扱えますか?

フィルタウィザードは、複数の画像の効率的な処理を可能にするバッチ処理ワークフローに統合できるコードを生成することができます。

フィルタウィザードの恩恵を最も受けるのはどのようなタイプの画像ですか?

低コントラスト、ノイズ、または複雑な背景を持つ画像は、フィルタウィザードのカスタム処理機能から大きな利益を得て、OCRの結果が向上します。

IronOCRのフィルタウィザードにアクセスするにはどうすればよいですか?

フィルタウィザードはIronOCRスイート内でアクセスが可能で、ユーザーに画像処理をカスタマイズしてOCRパフォーマンスを最適化するツールを提供します。

フィルタウィザードの使用に関するサポートはありますか?

IronOCRは、ユーザーがOCRタスクのために効果的にフィルタウィザードを活用できるように、ドキュメントとサポートリソースを提供しています。

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

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

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

準備はできましたか?
Nuget ダウンロード 5,167,857 | Version: 2025.11 リリース