IronOCR ハウツー 画像補正フィルター OCRの読み取りを向上させる画像補正フィルター カーティス・チャウ 更新日:2026年1月10日 IronOCR をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English IronOCRは、テキスト抽出の前に、テキストの鮮明度を高め、ノイズを減らすことにより、OCR精度を大幅に向上させるために、画像を前処理する5つの重要な画像補正フィルター(シャープ、解像度を高める、ノイズ除去、膨張、侵食)を提供します。 クイックスタート: クリアテキストにシャープフィルターを適用する IronOCRのOcrImageInputを使って、1行のコードでぼやけた画像を鮮明にしてください。 この例では、正確なOCRのための画像補正を示します。 今すぐ NuGet で PDF を作成してみましょう: NuGet パッケージ マネージャーを使用して IronOCR をインストールします PM > Install-Package IronOcr このコード スニペットをコピーして実行します。 new IronOcr.OcrImageInput("sample.png").Sharpen().SaveAsImages("output.png"); 実際の環境でテストするためにデプロイする 今すぐ無料トライアルでプロジェクトに IronOCR を使い始めましょう 30日間無料トライアル ### 最小限のワークフロー(5ステップ) フィルターを使った画像補正用のC#ライブラリをダウンロードする 読み取り用にPDFドキュメントと画像をインポートする シャープニング、解像度向上、デノイズ、膨張、および侵食などの希望するフィルターを適用します ビューイング用に修正された画像をエクスポート OCR処理にはReadメソッドを使用してください。 シャープ フィルターを適用するにはどうすればよいですか? このフィルタは、画像のエッジに沿ってコントラストを高め、テキストの境界をより明確にします。 テキストを明瞭にし、文字認識をより正確にします。 なぜシャープにすると OCR の精度が向上するのですか? シャープフィルタは、エッジのコントラストを強調することで、テキストと背景の境界を強調します。文字認識アルゴリズムが正しく機能するためには、明確ではっきりした文字の形が必要です。 スキャンした文書や低品質の写真によく見られる、エッジがぼやけたテキストは、OCRエンジンが文字の境界を誤認識する原因となります。 OCR 用の最適な画像処理についての詳細は、OCR 画像最適化フィルターの包括的なガイドをご覧ください。 シャープフィルターを適用するには、OcrImageInputオブジェクトのSharpenメソッドを呼び出します: :path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-sharpen-filter.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("sample.jpg"); // Apply sharpen filter imageInput.Sharpen(); // Export filtered image imageInput.SaveAsImages("sharpen.jpg"); Imports IronOcr ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Add image Private imageInput = New OcrImageInput("sample.jpg") ' Apply sharpen filter imageInput.Sharpen() ' Export filtered image imageInput.SaveAsImages("sharpen.jpg") $vbLabelText $csharpLabel シャープ フィルターはいつ使用すべきですか? 少しピントのずれた画像や、テキストのエッジが柔らかいスキャン文書、照明が弱い場所で撮影された写真には、シャープネス処理を使用してください。 明確なテキストをシャープにしすぎることは避けてください。 極端にぼやけたスキャン画像については、シャープネス処理と他のフィルタを組み合わせるか、低画質スキャンと画像の修正のガイドを参照してください。 SaveAsImagesメソッドを使用して、フィルタリングされた画像をエクスポートします。 以下は、翻訳前と翻訳後の比較です。 ビフォー アフター より良い OCR のために解像度を高めるにはどうすればよいですか? このフィルタはピクセル密度を高め、シャープネスと鮮明度を向上させます。 OCRエンジンが低解像度画像のテキストをより正確に読み取れるようにします。 OCRはどのDPIをターゲットにすべきですか? OCRエンジンは、300 DPI(ドット/インチ)で最高のパフォーマンスを発揮します。 解像度が低いと、文字の誤認識が発生します; 解像度が高いと、精度が上がらずに処理が遅くなります。 IronOCRのエンハンスメントフィルターは、画像を最適なDPIレベルにインテリジェントにアップスケールします。 詳細なガイダンスについては、DPI 設定ガイドを参照してください。 このフィルタを適用するには、EnhanceResolutionメソッドを呼び出します。 デフォルトのターゲットは225DPIです: using IronOcr; // Create OCR input var imageInput = new OcrImageInput("low-res-scan.jpg"); // Apply enhance resolution filter with default 225 DPI imageInput.EnhanceResolution(); // Or specify a custom DPI imageInput.EnhanceResolution(300); // Combine with OCR reading var ocr = new IronTesseract(); var result = ocr.Read(imageInput); Console.WriteLine($"Extracted text: {result.Text}"); using IronOcr; // Create OCR input var imageInput = new OcrImageInput("low-res-scan.jpg"); // Apply enhance resolution filter with default 225 DPI imageInput.EnhanceResolution(); // Or specify a custom DPI imageInput.EnhanceResolution(300); // Combine with OCR reading var ocr = new IronTesseract(); var result = ocr.Read(imageInput); Console.WriteLine($"Extracted text: {result.Text}"); Imports IronOcr ' Create OCR input Dim imageInput As New OcrImageInput("low-res-scan.jpg") ' Apply enhance resolution filter with default 225 DPI imageInput.EnhanceResolution() ' Or specify a custom DPI imageInput.EnhanceResolution(300) ' Combine with OCR reading Dim ocr As New IronTesseract() Dim result = ocr.Read(imageInput) Console.WriteLine($"Extracted text: {result.Text}") $vbLabelText $csharpLabel 解像度の向上が最も重要なのはいつですか? 解像度の向上は、以下の点で非常に重要です: スクリーンショットは画面解像度(72-96 DPI)でキャプチャしてください。 インターネットからダウンロードしたウェブ画像 低解像度でスキャンされた歴史的文書 解像度の低いファックス送信 OCR Tesseract Image DPIの例は、DPIがドキュメントの種類によって精度にどのように影響するかについての洞察を提供します。 ビフォー アフター 画像からノイズを除去するにはどうすればよいですか? ノイズ除去フィルタは、画像の不要なアーチファクトを低減します。 ノイズリダクションは、テキストを背景の干渉から分離し、よりクリーンで正確なOCR結果を生成します。 2x2形態素と3x3形態素の違いは何ですか? モルフォロジーのサイズはノイズ除去の強さを決定する。 2x2モルフォロジーを使用することで、繊細なテキストを保持しながらも、アーチファクトを最小限に抑えるための穏やかなノイズリダクションが適用されます。 3x3形態素は、劣化の激しい文書に対して積極的なノイズ除去を行いますが、非常に小さなテキストに影響を与える可能性があります。 ノイズ除去フィルターを適用するには、 DeNoiseメソッドを使用します。 デフォルトの形態素は2x2です。3x3の形態素には'true'を渡してください: using IronOcr; // Load noisy document var imageInput = new OcrImageInput("noisy-scan.pdf"); // Apply denoise filter with default 2x2 morphology imageInput.DeNoise(); // Apply stronger denoising with 3x3 morphology imageInput.DeNoise(true); // Combine with other filters for severely degraded images imageInput.DeNoise() .Sharpen() .EnhanceResolution(300); // Process with OCR var ocr = new IronTesseract(); var result = ocr.Read(imageInput); // Check confidence levels foreach (var page in result.Pages) { Console.WriteLine($"Page confidence: {page.Confidence}%"); } using IronOcr; // Load noisy document var imageInput = new OcrImageInput("noisy-scan.pdf"); // Apply denoise filter with default 2x2 morphology imageInput.DeNoise(); // Apply stronger denoising with 3x3 morphology imageInput.DeNoise(true); // Combine with other filters for severely degraded images imageInput.DeNoise() .Sharpen() .EnhanceResolution(300); // Process with OCR var ocr = new IronTesseract(); var result = ocr.Read(imageInput); // Check confidence levels foreach (var page in result.Pages) { Console.WriteLine($"Page confidence: {page.Confidence}%"); } Imports IronOcr ' Load noisy document Dim imageInput As New OcrImageInput("noisy-scan.pdf") ' Apply denoise filter with default 2x2 morphology imageInput.DeNoise() ' Apply stronger denoising with 3x3 morphology imageInput.DeNoise(True) ' Combine with other filters for severely degraded images imageInput.DeNoise() _ .Sharpen() _ .EnhanceResolution(300) ' Process with OCR Dim ocr As New IronTesseract() Dim result = ocr.Read(imageInput) ' Check confidence levels For Each page In result.Pages Console.WriteLine($"Page confidence: {page.Confidence}%") Next $vbLabelText $csharpLabel 自分の画像にノイズ除去が必要かどうかを知るにはどうすればよいですか? これらのノイズ指標を探してください: 背景のランダムな斑点またはドット スキャン不良による塩・コショウノイズ 高ISO撮影による粒状感 再生紙を使用した背景テクスチャ 自動ノイズ検出については、フィルタウィザードをご覧ください。 ビフォー アフター ディレート フィルターはどのように使用しますか? 画像内の明るい領域を拡張します。 テキストを太くすることで、より目立たせ、OCRソフトウェアが解釈しやすくします。 テキストにディレーションを適用するのはいつですか? ダイレーションは、以下のような薄い文字や改行文字に最適です: インクが安定しない古いタイプライター文書 色あせたレシートや感熱紙の印刷物 ヘアラインフォントを使用した文書 画像形式の圧縮されすぎたテキスト ダイレーションは、文字内の小さな隙間を埋め、弱いストロークのつながりを強化します。 これは、OCRエンジンが壊れた文字を複数の記号と誤認するのを防ぐためです。 拡張フィルターを適用するには、 Dilateメソッドを使用します。 デフォルトの形態素は2x2です; 3x3には"true"を渡してください: using IronOcr; // Create OCR engine var ocrTesseract = new IronTesseract(); // Apply dilate filter var imageInput = new OcrImageInput("thin-text.jpg"); imageInput.Dilate(); // For more aggressive dilation imageInput.Dilate(true); // Practical example for faded receipt processing var receiptInput = new OcrImageInput("faded-receipt.jpg"); receiptInput.Dilate() .DeNoise() .EnhanceResolution(300); // Configure for better receipt reading ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock; ocrTesseract.Configuration.ReadBarCodes = true; // Perform OCR var result = ocrTesseract.Read(receiptInput); using IronOcr; // Create OCR engine var ocrTesseract = new IronTesseract(); // Apply dilate filter var imageInput = new OcrImageInput("thin-text.jpg"); imageInput.Dilate(); // For more aggressive dilation imageInput.Dilate(true); // Practical example for faded receipt processing var receiptInput = new OcrImageInput("faded-receipt.jpg"); receiptInput.Dilate() .DeNoise() .EnhanceResolution(300); // Configure for better receipt reading ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock; ocrTesseract.Configuration.ReadBarCodes = true; // Perform OCR var result = ocrTesseract.Read(receiptInput); Imports IronOcr ' Create OCR engine Dim ocrTesseract As New IronTesseract() ' Apply dilate filter Dim imageInput As New OcrImageInput("thin-text.jpg") imageInput.Dilate() ' For more aggressive dilation imageInput.Dilate(True) ' Practical example for faded receipt processing Dim receiptInput As New OcrImageInput("faded-receipt.jpg") receiptInput.Dilate() _ .DeNoise() _ .EnhanceResolution(300) ' Configure for better receipt reading ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock ocrTesseract.Configuration.ReadBarCodes = True ' Perform OCR Dim result = ocrTesseract.Read(receiptInput) $vbLabelText $csharpLabel オーバーダイレーションでよくある問題とは 過度な拡張は、以下を引き起こす可能性があります: 隣接する文字が合体する文字化け 内部詳細の損失('e'または'8'の穴) 太字テキストの精度低下 結果をモニターし、適宜調整してください。 テキストの重みが混在する文書には、画質補正フィルターを選択的に使用してください。 ビフォー アフター どのようにエロード フィルターを適用しますか? Erosionは、画像の明るい領域を縮小し、太い文字や歪んだ文字を洗練させ、文字の分離を改善します。 なぜ侵食は分厚いテキストに役立つのでしょうか 浸食は、テキストのストロークを細くし、触れている文字を分離します。 このフィルターが得意とする分野 墨塗り印刷物 文字にじみのあるコピー マージされた太字テキスト 低品質のファックス送信 文字区切りを復元し、個々の文字の認識を向上させることで、単語全体の誤読を防ぎます。 このフィルタを適用するには、Erodeメソッドを使用してください。 デフォルトの形態素は2x2です; 3x3には"true"を渡してください: using IronOcr; // Create OCR instance var ocrTesseract = new IronTesseract(); // Load image with thick text var imageInput = new OcrImageInput("thick-text.jpg"); // Apply erode filter imageInput.Erode(); // Stronger erosion for heavily bleeding text imageInput.Erode(true); // Example: Processing a poor-quality photocopy var photocopyInput = new OcrImageInput("thick-text-photocopy.pdf"); // Apply erosion followed by sharpening for best results photocopyInput.Erode() .Sharpen() .EnhanceResolution(300); // Configure OCR for better accuracy ocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\\:\";<>?,./"; ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "; var ocrResult = ocrTesseract.Read(photocopyInput); // Extract with confidence check var highConfidenceText = ocrResult.Blocks .Where(b => b.Confidence > 90) .Select(b => b.Text); using IronOcr; // Create OCR instance var ocrTesseract = new IronTesseract(); // Load image with thick text var imageInput = new OcrImageInput("thick-text.jpg"); // Apply erode filter imageInput.Erode(); // Stronger erosion for heavily bleeding text imageInput.Erode(true); // Example: Processing a poor-quality photocopy var photocopyInput = new OcrImageInput("thick-text-photocopy.pdf"); // Apply erosion followed by sharpening for best results photocopyInput.Erode() .Sharpen() .EnhanceResolution(300); // Configure OCR for better accuracy ocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\\:\";<>?,./"; ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "; var ocrResult = ocrTesseract.Read(photocopyInput); // Extract with confidence check var highConfidenceText = ocrResult.Blocks .Where(b => b.Confidence > 90) .Select(b => b.Text); Imports IronOcr ' Create OCR instance Dim ocrTesseract As New IronTesseract() ' Load image with thick text Dim imageInput As New OcrImageInput("thick-text.jpg") ' Apply erode filter imageInput.Erode() ' Stronger erosion for heavily bleeding text imageInput.Erode(True) ' Example: Processing a poor-quality photocopy Dim photocopyInput As New OcrImageInput("thick-text-photocopy.pdf") ' Apply erosion followed by sharpening for best results photocopyInput.Erode() _ .Sharpen() _ .EnhanceResolution(300) ' Configure OCR for better accuracy ocrTesseract.Configuration.BlackListCharacters = "~`@#$%^&*()_+-={}[]|\:"";<>?,./" ocrTesseract.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 " Dim ocrResult = ocrTesseract.Read(photocopyInput) ' Extract with confidence check Dim highConfidenceText = ocrResult.Blocks _ .Where(Function(b) b.Confidence > 90) _ .Select(Function(b) b.Text) $vbLabelText $csharpLabel 浸食とテキストの読みやすさのバランスはどうすればよいですか? 適切な侵食レベルを見つけるには、入念なテストが必要です: デフォルトの2x2形態素で開始 代表的な文書サンプルでのテスト 句読点が見えるようにする 細いフォントが壊れないようにする テキストのウェイトが混在する文書については、高度な設定オプションを参照してください。 ビフォー アフター フィルタリングした画像を検索可能なPDFとして保存するにはどうすればよいですか? IronOCRを使用すると、フィルタを適用したり、元の状態で変更したPDFを保存することができます。 SaveAsSearchablePdfメソッドの2番目のパラメータは、フィルタを使用して保存するかどうかを決定します。 フィルタの変更を保持する利点は何ですか? フィルタの変更を保持することには、いくつかの利点があります: よりクリーンで読みやすいドキュメントを作成 文書バッチ間の一貫性を維持 テキストの品質向上を視覚的に確認 品質管理の比較が可能 検索可能なPDFを作成するには、視覚的な外観を維持しながら、OCRテキストレイヤーを埋め込みます。 詳しくは、検索可能なPDFの作成に関するガイドをご覧ください。 using IronOcr; var ocr = new IronTesseract(); var ocrInput = new OcrInput(); // Load a PDF file ocrInput.LoadPdf("invoice.pdf"); // Apply multiple filters for comprehensive improvement ocrInput.ToGrayScale() .DeNoise() .Sharpen() .EnhanceResolution(300); // Perform OCR OcrResult result = ocr.Read(ocrInput); // Save the result as a searchable PDF with filters applied result.SaveAsSearchablePdf("outputFiltered.pdf", true); // Or save without filters to preserve original appearance result.SaveAsSearchablePdf("outputOriginal.pdf", false); // Export to other formats result.SaveAsTextFile("extracted-text.txt"); result.SaveAsHocrFile("output.html"); using IronOcr; var ocr = new IronTesseract(); var ocrInput = new OcrInput(); // Load a PDF file ocrInput.LoadPdf("invoice.pdf"); // Apply multiple filters for comprehensive improvement ocrInput.ToGrayScale() .DeNoise() .Sharpen() .EnhanceResolution(300); // Perform OCR OcrResult result = ocr.Read(ocrInput); // Save the result as a searchable PDF with filters applied result.SaveAsSearchablePdf("outputFiltered.pdf", true); // Or save without filters to preserve original appearance result.SaveAsSearchablePdf("outputOriginal.pdf", false); // Export to other formats result.SaveAsTextFile("extracted-text.txt"); result.SaveAsHocrFile("output.html"); Imports IronOcr Dim ocr As New IronTesseract() Dim ocrInput As New OcrInput() ' Load a PDF file ocrInput.LoadPdf("invoice.pdf") ' Apply multiple filters for comprehensive improvement ocrInput.ToGrayScale() _ .DeNoise() _ .Sharpen() _ .EnhanceResolution(300) ' Perform OCR Dim result As OcrResult = ocr.Read(ocrInput) ' Save the result as a searchable PDF with filters applied result.SaveAsSearchablePdf("outputFiltered.pdf", True) ' Or save without filters to preserve original appearance result.SaveAsSearchablePdf("outputOriginal.pdf", False) ' Export to other formats result.SaveAsTextFile("extracted-text.txt") result.SaveAsHocrFile("output.html") $vbLabelText $csharpLabel フィルタリングされたPDFとオリジナルのPDFのどちらを選べばよいですか? フィルターで保存(true)する場合: 原文の品質が低い 文書間で一貫した外観が必要です。 フィルタリングされたバージョンは読みやすさを大幅に改善 ドキュメントの長期保存 フィルターなしで保存(false)する場合:。 原文の体裁を保つことが法的に義務付けられています。 色情報は重要です 文書の信頼性を維持すること フィルターは、OCRの精度のためにのみ必要です。 高度な PDF 処理オプションについては、PDF OCR テキスト抽出ガイドを参照してください。 最適なフィルタの組み合わせについては、フィルタウィザードチュートリアルを参照してください。 よくある質問 C#でOCRの精度を向上させる画像フィルターとは? IronOCRは5つの重要な画像補正フィルターを提供します:シャープ、解像度の向上、ノイズ除去、膨張、侵食。これらのフィルターは、テキスト抽出の前に、テキストの鮮明度を高め、ノイズを減らすことによって、OCR精度を大幅に向上させるために画像を前処理します。 テキスト認識を向上させるために、ぼやけた画像をシャープにするにはどうすればよいですか? IronOCRのOcrImageInputを使用すると、1行のコードでぼやけた画像をシャープにすることができます: new IronOcr.OcrImageInput("sample.png").Sharpen().このフィルタは画像のエッジに沿ってコントラストを上げ、より明確なテキスト境界を作成し、文字認識を向上させます。 なぜシャープニングするとOCRの精度が向上するのですか? IronOCRのシャープフィルターは、エッジのコントラストを強調することで、テキストと背景の境界を強調します。文字認識アルゴリズムが正しく機能するためには、明確ではっきりした文字の形が必要なので、これは非常に重要です。エッジがソフトでぼやけたテキストは、OCRエンジンが文字の境界を誤認識する原因となります。 OCRにシャープフィルターを使用するのはどのような場合ですか? IronOCRのシャープニングフィルターは、少しピンぼけした画像や、テキストのエッジが柔らかいスキャン文書、照明の悪い場所で撮影された写真などにお使いください。鮮明なテキストをシャープにしすぎると、アーチファクトが発生し、精度が落ちるので避けてください。 最適なOCRパフォーマンスを得るには、どのDPIを目標にすればよいですか? IronOCRは300 DPI (dots per inch)の画像で最高のパフォーマンスを発揮します。解像度が低いと文字の誤認識を引き起こし、解像度が高いと精度が向上せずに処理が遅くなります。低解像度の画像のピクセル密度を上げるには、解像度強化フィルターを使用してください。 補正後にフィルタリングした画像をエクスポートできますか? はい、IronOCRではSaveAsImagesメソッドを使ってフィルタリングした画像をエクスポートすることができます。これにより、OCRを実行する前に、画像補正の前後比較を表示し、改善点を確認することができます。 画像フィルタを適用するための最小限のワークフローを教えてください。 IronOCRの最小ワークフローは5つのステップで構成されています:ライブラリのダウンロード、PDFや画像のインポート、必要なフィルターの適用(シャープ、解像度の向上、ノイズ除去、膨張、侵食)、閲覧のための補正画像のエクスポート、OCR処理のための読み取りメソッドの使用。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 準備はできましたか? Nuget ダウンロード 5,384,824 | バージョン: 2026.2 リリース NuGet 無料版 総ダウンロード数: 5,384,824 ライセンスを見る