IRONSOFTWAREHOME

C# 圖像校正濾鏡以改善OCR讀取

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronOCR提供五種基本的圖像校正濾鏡(erode),這些濾鏡在文字提取前通過增強文字清晰度和減少噪音來顯著提高OCR的準確性。

快速入門:應用銳化濾鏡提高文字清晰度

使用IronOCR的OcrImageInput可以用一行程式碼來銳化模糊的圖像。 此範例展示了如何增強圖像以實現準確的OCR。

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2複製並運行這段程式碼片段。

    new IronOcr.OcrImageInput("sample.png").Sharpen().SaveAsImages("output.png");
    C#
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronOCR,透過免費試用
    arrow pointer

如何應用銳化濾鏡?

此濾鏡增加圖像邊緣的對比度,建立更明確的文字邊界。 它提高了文字的清晰度,使文字識別更加準確。

為什麼銳化能提高OCR準確性?

銳化濾鏡通過增強邊緣對比度來強調文字和背景之間的邊界。文字識別算法需要清晰明確的字母形狀才能正常運行。 帶有柔和邊緣的模糊文字(常見於掃描文件或低質量照片)會導致OCR引擎誤判文字邊界。 欲了解有關OCR優化圖像處理的更多資訊,請參考我們的OCR圖像優化濾鏡指南

要應用銳化濾鏡,調用Sharpen方法:

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");

什麼時候應該使用銳化濾鏡?

對於略微失焦的圖像、帶有柔和文字邊緣的掃描文件或光照差的照片,使用銳化。 避免對清晰文字進行過度銳化,這會引入文字渣、降低準確性。 對於極度模糊的掃描結果,將銳化與其他濾鏡組合使用,或參考我們的修正低質量掃描和圖像指南

使用SaveAsImages方法導出已過濾的圖像。 以下是前後比較。

Blurred text sample showing business article content before applying sharpen filter
套用銳利化濾鏡後的文字範例,顯示提升的邊緣清晰度與字元清晰度

如何提高解析度以改善OCR表現?

此濾鏡增加像素密度,改善清晰度和銳利度。 這有助於OCR引擎更準確地識別低解析度圖像中的文字。

OCR應以多高的DPI為目標?

OCR引擎在300 DPI(每英寸點數)下表現最佳。 較低的解析度會導致字元識別錯誤; 較高的解析度會減慢處理速度但不提高準確性。 IronOCR的增強濾鏡會智能地將圖像升級到最佳DPI級別。 詳細指導可參考我們的DPI設置指南

調用EnhanceResolution方法應用此濾鏡。 預設目標是225 DPI:

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}");

何時解析度增強最為重要?

解析度增強對於以下情況至關重要:

  • 以螢幕解析度(72-96 DPI)捕獲的截圖
  • 從網路下載的影像
  • 以低解析度掃描的歷史文件
  • 本身就低解析度的傳真件

OCR Tesseract影像DPI例提供了DPI如何影響不同文件型別準確性的洞察。

Low-resolution text sample showing blurry, pixelated business article requiring OCR enhancement
解析度提升後的文字,顯示提高 DPI 後更清晰的字元,以獲得更佳的 OCR 準確度

如何消除圖像中的雜訊?

去噪濾鏡減少圖像中的不必要人工痕跡。 雜訊抑制將文字與背景干擾隔離,產生更乾淨、更準確的OCR結果。

甚麼是 2x2 和 3x3 形態差異?

形態大小決定去噪強度。 2x2形態對細微文字保持最小失真的輕度去噪。 3x3形態為嚴重劣化的文件提供強力去噪,但可能影響非常小的文字。

要使用去噪濾鏡,請使用DeNoise方法。 預設形態為2x2。傳'true'可使用3x3形態:

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}%");
}

我怎麼知道我的圖像需要去噪呢?

尋找以下雜訊指標:

  • 背景上隨機斑點或小點
  • 由於糟糕掃描造成的鹽與胡椒噪聲
  • 高ISO攝影造成的顆粒感
  • 再生紙造成的背景紋理

要自動檢測噪聲,請探索我們的濾鏡精靈

帶有雜點與雜訊的掃描文件,其瑕疵使關於日本科技高階主管的文字品質下降
去雜訊濾鏡移除背景斑點並提升文字清晰度後的乾淨文件

如何使用擴展濾鏡?

擴展擴大圖像中的亮區。 它加強了文字,使其更突出,更容易被OCR軟體理解。

什麼時候應給文字加擴展?

擴展在處理出現過細或斷裂字元時效果最佳,如:

  • 油墨不均勻的舊打字機文件
  • 淡化的收據和熱敏紙列印
  • 髮型字體的文件
  • 過度壓縮的圖像格式中的文字

擴展填補了字元內的小縫隙,加強了弱筆劃聯繫。 這防止了OCR引擎將破碎字元誤解為多個符號。

要應用擴展濾鏡,使用Dilate方法。 預設形態為2x2; 傳遞'true'可使用3x3:

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);

過度擴展常見問題是什麼?

過度擴展可能導致:

  • 相鄰字母融合,造成字元流血
  • 損失內部細節('e'或'8'中的洞)
  • 粗體字準確度降低

監控結果並相應調整。 對於文字權重混合的文件,選擇性使用我們的圖像質量校正濾鏡。

帶有細字筆畫的文件,適合以膨脹濾鏡處理以進行 OCR
套用膨脹濾鏡後的文字,顯示加粗的字元筆畫與提升的可讀性

如何應用腐蝕濾鏡?

腐蝕減少圖像中的亮區大小,修正過於厚的或變形的字元,並改善字元分離。

為什麼腐蝕對於厚文字有幫助?

腐蝕稀釋文字筆劃,分隔連接字元。 此濾鏡在以下情況中表現出色:

  • 過多墨水印刷的文件
  • 字元流血的影印件
  • 顯得合併的粗體字
  • 低質量的傳真傳輸

謹慎的腐蝕可以恢復字元分離並改善單獨字母識別,防止整個詞被誤判。

使用Erode方法應用此濾鏡。 預設形態為2x2; 傳遞'true'可使用3x3:

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);

如何平衡腐蝕與文字可讀性?

找到正確的腐蝕程度需要仔細測試:

  • 從預設2x2形態開始
  • 在代表性文件樣本上進行測試
  • 確認標點符號可見
  • 確保細字體不會變成破碎狀

對於文字權重混合的文件,參考我們的高階配置選項

帶有合併/粗厚字元的文件,適合以侵蝕濾鏡處理
套用侵蝕濾鏡後的文字,顯示分離的字元與細化的筆畫粗細

如何將過濾後的圖像保存為可搜索的PDF?

IronOCR讓您可以選擇將含有濾鏡應用的修改過的PDF或原始狀態保存。 SaveAsSearchablePdf方法的第二個參數決定是否使用濾鏡保存。

為什麼保留濾鏡變更有好處?

保留濾鏡變更有若干優勢:

  • 建立更乾淨、更易讀的文件
  • 在文件批次間保持一致性
  • 提供文字質量改善的視覺確認
  • 使質量控制比較得以進行

建立可搜索的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");

如何選擇過濾後和原始PDF之間的差異?

儲存過濾版本(true)當:

  • 原始文件質量差
  • 文件之間需要一致的外觀
  • 過濾版本顯著提高可讀性
  • 文件被歸檔以供長期儲存

儲存為未過濾版本(false)當:

  • 法律要求保留原始外觀
  • 色彩資訊至關重要
  • 必須維持文件真實性
  • 濾鏡只對OCR準確性有幫助

有關高級PDF處理選項,請探索我們的PDF OCR文字提取指南。 欲了解最佳濾鏡組合,請參見濾鏡精靈教程

常見問題

哪些影像濾鏡可以提高C#中的OCR準確度?

IronOCR提供五個基本的影像校正濾鏡:銳化、增強解析度、降噪、膨脹和侵蝕。這些濾鏡在文字提取前預處理影像,大幅提高OCR的準確度,透過提高文字清晰度和減少噪點達到此效果。

如何銳化模糊的影像以改善文字識別?

您可以使用IronOCR的OcrImageInput透過一行程式碼來銳化模糊的影像:new IronOcr.OcrImageInput("sample.png").Sharpen()。此濾鏡提高影像中邊緣的對比,提高文字邊界的鮮明度以改善字元識別。

為什麼銳化可以提高OCR準確度?

IronOCR中的銳化濾鏡透過加強邊緣對比來強調文字和背景之間的邊界。這對字元識別演算法至關重要,因為它們需要清晰、突出的字母形狀才能正常運作。模糊文字的柔邊導致OCR引擎錯誤識別字元邊界。

什麼時候應使用銳化濾鏡進行OCR?

對於稍微失焦的影像、邊緣柔和的掃描文件或在光線不佳條件下拍攝的照片,請使用IronOCR的銳化濾鏡。避免對清晰文字過度銳化,因為這會產生雜訊並降低準確度。

應該針對什麼DPI以獲得最佳OCR性能?

IronOCR在300 DPI(每英寸點數)的影像中表現最佳。較低解析度會導致字元錯誤識別,而較高解析度會在不提高準確度的情況下降低處理速度。使用增強解析度濾鏡來增加低解析度影像中的像素密度。

應用校正後可以匯出濾鏡影像嗎?

可以,IronOCR允許您使用SaveAsImages方法匯出濾鏡影像。這使您能夠在運行OCR前查看影像校正的前後對比並驗證改進。

應用影像濾鏡的最小工作流程是什麼?

IronOCR的最小工作流程包括五個步驟:下載程式庫,匯入您的PDF或影像,應用所需的濾鏡(銳化、增強解析度、降噪、膨脹、侵蝕),匯出校正後的影像以供查看,並使用Read方法進行OCR處理。

What parameters should I consider when choosing between filtered and original PDFs?

Choose filtered PDFs when you need consistent appearance, improved readability, or archiving. Opt for original PDFs when preserving original appearance is legally required, or when maintaining color information and document authenticity is important.

What are common signs that my image needs denoising?

Noise indicators include random speckles, salt-and-pepper noise, graininess from high ISO photography, and background texture that interferes with text clarity.

What typical DPI settings are recommended for optimal OCR results?

OCR engines perform best at 300 DPI. Lower resolutions may lead to character misrecognition, while higher resolutions might slow processing without enhancing accuracy. IronOCR's enhancement filter can upscale images to the optimal DPI level.

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備開始了嗎?

Nuget Downloads 6,236,385版本:2026.9剛剛發布

立即獲取免費

立即獲取 30天試用金鑰

bullet_checked無需信用卡或註冊帳號
bullet_test在生產
環境中進行測試,且不顯示浮水印
bullet_calendar30 天全
功能產品
bullet_support試用期間提供 24/5 技術
支援
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立
C# PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. 在解決方案資源管理器中,右鍵點擊參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronOCR"
  3. 選擇包並安裝
C# PDF DLL
下載 DLL

版本: 2026.9

這裡下載Windows安裝程式。

  1. 下載並解壓IronOCR至您的方案目錄下的~/Libs等位置
  2. 在Visual Studio解決方案資源管理器中,右鍵點擊參考。選擇瀏覽,"IronOCR.dll"

授權從$999

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立