IronOCR 操作指南 圖像校正濾鏡 C# 改善 OCR 讀取的影像修正篩選器。 Curtis Chau 更新:2026年1月10日 下載 IronOCR NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronOCR 提供五種基本的影像修正濾鏡 (銳化、增強解析度、去噪、擴張和侵蝕),可在文字擷取之前預先處理影像,藉由增強文字清晰度和降低雜訊,大幅提升 OCR 準確度。 快速入門:套用銳利化濾鏡以獲得清晰文字 使用 IronOCR 的 OcrImageInput 只需一行代碼即可銳化模糊的影像。 本範例展示影像增強以達到精確的 OCR。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronOCR PM > Install-Package IronOcr 複製並運行這段程式碼。 new IronOcr.OcrImageInput("sample.png").Sharpen().SaveAsImages("output.png"); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronOCR,免費試用! 免費試用30天 ### 最小工作流程(5 個步驟) 下載一個用於使用濾波器進行影像校正的 C# 庫 導入 PDF 文檔和圖像以進行閱讀 應用所需的過濾器,如銳化、提升分辨率、去噪、膨脹和腐蝕 導出校正後的影像以供查看 使用 Read 方法進行 OCR 處理 如何套用銳化濾鏡? 此濾鏡可增加影像邊緣的對比度,創造出更明確的文字邊界。 它能改善文字的清晰度,使字元辨識更準確。 為什麼銳化可以提高 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 方法來套用此過濾器。 預設目標為 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}"); 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方法。 預設 morphology 為 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 攝影所產生的紋理 背景紋理來自回收紙 如需自動偵測雜訊,請探索我們的 Filter Wizard。 前 後 如何使用 Dilate 過濾器? 縮放可擴大影像中的明亮區域。 它可以加厚文字,使其更加突出,並讓 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'的孔洞) 降低粗體文字的精確度 監控結果並作相應調整。 對於混合文字重量的文件,請選擇性使用我們的影像品質修正篩選器。 前 後 如何套用 Erode 過濾器? 侵蝕可以縮小圖像中明亮區域的大小,精細粗大或扭曲的字元並改善字元分離。 為什麼侵蝕有助於處理厚文本? 侵蝕會使文字筆劃變細,並分開觸碰的字元。 此過濾器的優點在於 過墨印刷文件 字體出血的影印本 出現合併的粗體文字 低品質傳真傳輸 仔細的侵蝕可恢復字元間的分隔,並提高個別字母的辨識度,避免整個字詞被誤讀。 使用 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 方法的第二個參數會決定是否以過濾器儲存。 保留篩選器變更有什麼好處? 保留過濾器變更提供了幾個優點: 建立更簡潔、更易閱讀的文件 保持不同文件批次的一致性 提供文字品質改善的視覺確認 可進行品質控制比較 建立可搜尋的 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 提供五種基本的影像修正濾鏡:銳化、增強解析度、去噪、擴展和侵蝕。這些濾鏡可在文字擷取之前,先預先處理影像,藉由增強文字清晰度和降低雜訊,大幅提升 OCR 準確度。 如何銳化模糊的影像以獲得更好的文字辨識度? 您可以使用 IronOCR 的 OcrImageInput 銳化模糊的影像,只需一行程式碼:new IronOcr.OcrImageInput("sample.png").Sharpen()。此濾鏡可增加影像邊緣的對比度,建立更明確的文字邊界,以改善字元辨識。 為什麼銳化可以提高 OCR 準確度? IronOCR 中的銳化篩選器透過增強邊緣對比度來強調文字與背景之間的邊界。這一點非常重要,因為字元識別演算法需要清晰、鮮明的字母形狀才能正常運作。邊緣柔和的模糊文字會導致 OCR 引擎錯誤辨識文字邊界。 何時應該使用 OCR 的銳化篩選器? 使用 IronOCR 的銳化濾鏡來處理稍微失焦的影像、文字邊緣較軟的掃描文件,或在光線較差的情況下拍攝的照片。避免過度銳化清晰的文字,因為這樣會產生假象並降低精確度。 為了達到最佳的 OCR 效能,我應該以什麼 DPI 為目標? IronOCR 對於 300 DPI(每英吋點數)的影像表現最佳。較低的解析度會導致字元識別錯誤,而較高的解析度則會減慢處理速度,卻不會提高精確度。使用增強解析度篩選器可增加低解析度影像的像素密度。 套用修正後,我可以匯出篩選過的影像嗎? 是的,IronOCR 允許您使用 SaveAsImages 方法匯出篩選過的影像。這可讓您在執行 OCR 之前,檢視影像修正的前後比較,並驗證改善的效果。 應用影像濾鏡的最基本工作流程是什麼? IronOCR 的最小工作流程包括 5 個步驟:下載程式庫、匯入您的 PDF 或影像、套用所需的濾鏡(銳化、提升解析度、去噪、擴展、侵蝕)、匯出修正後的影像以供檢視,並使用讀取方法進行 OCR 處理。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 準備好開始了嗎? Nuget 下載 5,384,824 | 版本: 2026.2 剛剛發布 免費 NuGet 下載 總下載量:5,384,824 查看許可證