IronOCR チュートリアル IronOCR フィルター C# ガイド: IronOCR 画像フィルターを使用して OCR を向上させる カーティス・チャウ 更新日:6月 9, 2025 IronOCR をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる ジェミニで開く このページについてGeminiに問い合わせる 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English IronOCR は、フィルターの形で前処理が必要な可能性のある画像を読み取るために必要なツールを提供します。 画像を処理可能な状態にするための、さまざまなフィルターから選択できます。 クイックスタート: フィルターを適用して OCR 画像をクリーンアップする たった 1 回の簡単な呼び出しチェーンで、DeNoise、Binarize、Deskew フィルターを適用し、OCR の前にスキャンの鮮明度を向上させることができます。 この例では、IronOCR の組み込みフィルターを使用して画像を簡単に強化し、すぐに開始できる方法を示します。 今すぐ NuGet で PDF を作成してみましょう: NuGet パッケージ マネージャーを使用して IronOCR をインストールします PM > Install-Package IronOcr このコード スニペットをコピーして実行します。 using var input = new IronOcr.OcrInput("scan.jpg"); input.DeNoise(true).Binarize().Deskew(45); var result = new IronOcr.IronTesseract().Read(input); 実際の環境でテストするためにデプロイする 今すぐ無料トライアルでプロジェクトに IronOCR を使い始めましょう 30日間無料トライアル OCR画像フィルターのリスト 次の画像フィルターを使用すると、パフォーマンスを大幅に向上できます。 Filters to change the Image Orientation Rotate - 画像を時計回りに指定角度回転します。反時計回りに回転する場合は、負の数を入力してください。 Deskew - 画像を正しい向きで直交するように回転します。 Tesseract の斜めスキャンの許容度は 5 度まで低いため、これは OCR に非常に役立ちます。 Scale - OCR 入力ページを比例的に拡大縮小します。 Filters to manipulate Image Colors Binarize - この画像フィルターは、すべてのピクセルを中間のない黒または白に変換します。 これにより、テキストと背景のコントラストが非常に低い場合に OCR のパフォーマンスが向上する可能性があります。 ToGrayScale - この画像フィルターは、すべてのピクセルをグレーの階調に変換します。 OCR の精度が向上する可能性は低いですが、速度は向上する可能性があります。 Invert - すべての色を反転します。 たとえば、白は黒になり、黒は白になります。 ReplaceColor - 特定のしきい値内で、画像内の色を別の色に置き換えます。 Filters to improve Contrast in an Image Contrast - コントラストを自動的に上げます。 このフィルターにより、低コントラストのスキャンでの OCR 速度と精度が向上することがよくあります。 Dilate - 高度な形態学。 膨張 は、画像内のオブジェクトの境界にピクセルを追加します。 Erode の反対。 Erode - 高度な形態学。 Erosion はオブジェクトの境界からピクセルを削除します。 Dilate の反対。 Filters to reduce Image Noise Sharpen - ぼやけた OCR ドキュメントをシャープ化し、アルファ チャネルを白に平坦化します。 DeNoise - デジタルノイズを除去します。このフィルターは、ノイズが予想される場合にのみ使用してください。 DeepCleanBackgroundNoise - 重度のバックグラウンド ノイズを除去します。 このフィルターは、クリーンなドキュメントの OCR 精度を低下させる可能性があり、CPU を大量に消費するため、ドキュメントの背景に極端なノイズがあることがわかっている場合にのみ使用してください。 EnhanceResolution - 低品質の画像の解像度を高めます。 OcrInput.MinimumDPI と OcrInput.TargetDPI は低解像度の入力を自動的にキャッチして解決するため、このフィルターが必要になることはあまりありません。 フィルターの例と使用方法 次の例では、コード内でフィルターを適用する方法を示します。 :path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-1.cs using IronOcr; using System; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("my_image.png"); input.Deskew(); var result = ocr.Read(input); Console.WriteLine(result.Text); Imports IronOcr Imports System Private ocr = New IronTesseract() Private input = New OcrInput() input.LoadImage("my_image.png") input.Deskew() Dim result = ocr.Read(input) Console.WriteLine(result.Text) $vbLabelText $csharpLabel デバッグ フィルター / フィルターは何をしているのですか? プログラム内で画像やバーコードを読み取るのが難しい場合は、フィルタリングされた結果の画像を保存する方法があります。 この方法により、各フィルターが何を実行し、どのように画像を操作しているかを正確にデバッグして確認できます。 :path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-2.cs using IronOcr; using System; var file = "skewed_image.tiff"; var ocr = new IronTesseract(); using var input = new OcrInput(); var pageindices = new int[] { 1, 2 }; input.LoadImageFrames(file, pageindices); // Here we apply the filter: Deskew input.Deskew(); // Save the input with filter(s) applied input.SaveAsImages("my_deskewed"); // We read, then print the text to the console var result = ocr.Read(input); Console.WriteLine(result.Text); Imports IronOcr Imports System Private file = "skewed_image.tiff" Private ocr = New IronTesseract() Private input = New OcrInput() Private pageindices = New Integer() { 1, 2 } input.LoadImageFrames(file, pageindices) ' Here we apply the filter: Deskew input.Deskew() ' Save the input with filter(s) applied input.SaveAsImages("my_deskewed") ' We read, then print the text to the console Dim result = ocr.Read(input) Console.WriteLine(result.Text) $vbLabelText $csharpLabel フィルターの使用例 回転 APIリファレンス フィルターの説明 回転は、画像に既知の回転を手動で設定して、画像を真っ直ぐに近づけるために使用されるフィルターです。 IronOCR にはDeskew()を実行する機能がありますが、その許容範囲はかなり狭く、ほぼ完全にまっすぐな画像 (15 度以内程度) に最適です。 入力画像が 90 度ずれているか、上下逆さまになっている場合は、 Rotate()を呼び出す必要があります。 ユースケースコード例 これは、Rotate を呼び出して上下逆さまの画像を修正する例です。 :path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-3.cs using IronOcr; using System; var image = "screenshot.png"; var ocr = new IronTesseract(); using var input = new OcrInput(); // Load at least one image input.LoadImage(image); // Rotate 180 degrees because image is upside-down input.Rotate(180); // Read image into variable: result var result = ocr.Read(input); // Example print to console Console.WriteLine(result.Text); Imports IronOcr Imports System Private image = "screenshot.png" Private ocr = New IronTesseract() Private input = New OcrInput() ' Load at least one image input.LoadImage(image) ' Rotate 180 degrees because image is upside-down input.Rotate(180) ' Read image into variable: result Dim result = ocr.Read(input) ' Example print to console Console.WriteLine(result.Text) $vbLabelText $csharpLabel Input.Rotate(180) `Before``` Input.Rotate(180) `After``` デスキュー APIリファレンス フィルターの説明 ハフ変換を使用して、一定の許容範囲内で画像をまっすぐにしようとします。 傾いた文書は読み間違える可能性があるため、画像が完全にまっすぐでない場合はこれが重要です。 ご注意このメソッドはブール値を返します。フィルターが適用された場合は true、画像の向きを検出できないために適用に失敗した場合は false を返します。 ページに方向を定義するコンテンツがない場合、これは失敗します。 ユースケースコード例 これは、Desew を呼び出して、傾いた画像を修正する例です。 :path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-4.cs using IronOcr; using System; var image = @"paragraph_skewed.png"; var ocr = new IronTesseract(); using var input = new OcrInput(); // Load at least one image input.LoadImage(image); // Apply deskew with 15 degree snap bool didDeskew = input.Deskew(15); if (didDeskew) { // Read image into variable: result var result = ocr.Read(input); Console.WriteLine(result.Text); } else { Console.WriteLine("Deskew not applied because Image Orientation could not be determined."); } Imports IronOcr Imports System Private image = "paragraph_skewed.png" Private ocr = New IronTesseract() Private input = New OcrInput() ' Load at least one image input.LoadImage(image) ' Apply deskew with 15 degree snap Dim didDeskew As Boolean = input.Deskew(15) If didDeskew Then ' Read image into variable: result Dim result = ocr.Read(input) Console.WriteLine(result.Text) Else Console.WriteLine("Deskew not applied because Image Orientation could not be determined.") End If $vbLabelText $csharpLabel Deskew() `Before``` Deskew() `After``` Scale APIリファレンス フィルターの説明 スケールは、既存のピクセルを使用して画像のサイズを変更するのに役立つ便利な画像操作フィルターです。 これは、画像の幅が数十ピクセルしかなく、各バーが 1 ピクセルであるためバーコードがスキャンされない場合、またはテキストが小さすぎてアンチエイリアシングがない場合に使用できます。 ご注意バーコードが適切に読み取れる最適なサイズは1000px x 1000pxです。バーコードが見つからない場合は、このサイズを考慮する必要があります。 ユースケースコード例 これは、スキャン用にバーコードのバー間のギャップを拡大するために Scale を呼び出す例です。 :path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-5.cs using IronOcr; using System; var image = @"small_barcode.png"; var ocr = new IronTesseract(); // Optional: This example uses a barcode ocr.Configuration.ReadBarCodes = true; using var input = new OcrInput(); // Load at least one image input.LoadImage(image); // Apply scale input.Scale(400); // 400% is 4 times larger // Read image into variable: result var result = ocr.Read(input); // Example print to console Console.WriteLine(result.Text); Imports IronOcr Imports System Private image = "small_barcode.png" Private ocr = New IronTesseract() ' Optional: This example uses a barcode ocr.Configuration.ReadBarCodes = True Dim input = New OcrInput() ' Load at least one image input.LoadImage(image) ' Apply scale input.Scale(400) ' 400% is 4 times larger ' Read image into variable: result Dim result = ocr.Read(input) ' Example print to console Console.WriteLine(result.Text) $vbLabelText $csharpLabel スケールBefore ()`` スケール() `After``` ビナライズ APIリファレンス フィルターの説明 2 値化フィルターは、適応アルゴリズムに応じて、画像内のすべてのピクセルを黒または白に分類します。 これにより、すべての色が削除され、背景がフラットな白に分離され、テキストとして認識されたものはすべて読みやすいように完全な黒になります。 ユースケースコード例 これは、Binarize を呼び出して色付きのテキストを揃え、背景色とノイズを除去する例です。 :path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-6.cs using IronOcr; using System; var image = @"no-binarize.jpg"; var ocr = new IronTesseract(); using var input = new OcrInput(); // Load at least one image input.LoadImage(image); // Apply Binarize input.Binarize(); // Read image into variable: result var result = ocr.Read(input); // Example print to console Console.WriteLine(result.Text); Imports IronOcr Imports System Private image = "no-binarize.jpg" Private ocr = New IronTesseract() Private input = New OcrInput() ' Load at least one image input.LoadImage(image) ' Apply Binarize input.Binarize() ' Read image into variable: result Dim result = ocr.Read(input) ' Example print to console Console.WriteLine(result.Text) $vbLabelText $csharpLabel Binarize() `Before``` Binarize() `After``` 反転 APIリファレンス フィルターの説明 IronOCR は、画像がblack text on a white backgroundである場合に最もよく読み取られます。 反転フィルターは、画像上のすべての色を反転することでこれを実現するために使用されます。 ユースケースコード例 これは、Invert を呼び出して、黒地の白を白地の黒に変換する例です。 :path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-7.cs using IronOcr; using System; var image = @"before-invert.png"; var ocr = new IronTesseract(); using var input = new OcrInput(); // Load at least one image input.LoadImage(image); // Apply Invert input.Invert(true); // Read image into variable: result var result = ocr.Read(input); // Example print to console Console.WriteLine(result.Text); Imports IronOcr Imports System Private image = "before-invert.png" Private ocr = New IronTesseract() Private input = New OcrInput() ' Load at least one image input.LoadImage(image) ' Apply Invert input.Invert(True) ' Read image into variable: result Dim result = ocr.Read(input) ' Example print to console Console.WriteLine(result.Text) $vbLabelText $csharpLabel Before After よくある質問 画像フィルターは C# で OCR の精度をどのように向上させますか? IronOCR の画像フィルターは、画像を前処理して品質を向上させることで、OCR の精度を高めることができます。バイナライズやコントラストなどのフィルターは、色とコントラストを調整することで読みやすさを高め、回転や傾き補正は画像の向きを修正します。 画像の向きを修正するためにはどのフィルターが利用可能ですか? IronOCR は、画像の向きの問題を解決するために、回転と傾き補正フィルターを提供します。回転は画像の角度を手動で調整し、傾き補正はわずかに傾いた画像を自動でまっすぐにします。 バイナライズフィルターは画像の前処理にどのような影響を与えますか? IronOCR のバイナライズフィルターは、画像のピクセルを黒と白に変換し、背景色を除去してテキストの可視性を高め、特にコントラストの低い状況で OCR の精度を向上させます。 ノイズ削減フィルターを使用するのに適したタイミングはいつですか? シャープ化やノイズ除去などのノイズ削減フィルターは、画像にデジタルノイズがある場合に使用するべきです。これらのフィルターは画像をクリーンアップし、テキストをより鮮明にして IronOCR の結果を向上させます。 画像の解像度を向上させることで OCR のパフォーマンスが影響を受けますか? はい、解像度向上フィルターを使用することで、低品質な画像の解像度を上げて OCR のパフォーマンスを向上させることができます。IronOCR のデフォルト設定の MinimumDPI や TargetDPI が通常は十分ですが、必要に応じてこのフィルターによる追加の解像度の向上が可能です。 色調操作フィルターは OCR においてどのような役割を果たしますか? IronOCR の反転、グレースケール化、バイナライズなどの色調操作フィルターは、テキストの読みやすさを向上させるために画像の色を調整します。反転はカラースキームを変更し、グレースケール化は画像をグレースケールに変換し、バイナライズは画像を黒白に減少させます。 コントラストフィルターとシャープ化フィルターの違いは何ですか? IronOCR のコントラストフィルターは、明るい部分と暗い部分の違いを大きくし、テキストの明瞭さを向上させ、シャープ化フィルターはエッジを強調してテキストをより鮮明にし、両方ともより良い OCR 認識を支援します。 IronOCR でフィルターした画像を保存してデバッグする方法は? フィルター適用後に SaveAsImages 関数を使用して、IronOCR でフィルター処理済みの画像を保存してデバッグします。これにより、フィルター効果を視覚化し、前処理ステップで画像品質が向上したことを確認できます。 IronOCR で利用可能な高度な形態学的フィルターは何ですか? IronOCR は膨張と収縮のような高度な形態学的フィルターを提供します。膨張はオブジェクトの境界にピクセルを追加して特徴を強化し、収縮はそれを除去して、画像の詳細を明確にして OCR の精度を向上させるために使用されます。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 レビュー済み Jeffrey T. Fritz プリンシパルプログラムマネージャー - .NETコミュニティチーム Jeffはまた、.NETとVisual Studioチームのプリンシパルプログラムマネージャーです。彼は.NET Conf仮想会議シリーズのエグゼクティブプロデューサーであり、週に二回放送される開発者向けライブストリーム『Fritz and Friends』のホストを務め、テクノロジーについて話すことや視聴者と一緒にコードを書くことをしています。Jeffはワークショップ、プレゼンテーション、およびMicrosoft Build、Microsoft Ignite、.NET Conf、Microsoft MVPサミットを含む最大のMicrosoft開発者イベントのコンテンツを企画しています。 準備はできましたか? Nuget ダウンロード 5,167,857 | Version: 2025.11 リリース NuGet 無料版 総ダウンロード数: 5,167,857 ライセンスを見る