如何在 OCR 中使用 C# 設定 DPI

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

在 IronOcr 的 OcrInput 中設定 TargetDPI 屬性,以提升低解析度影像的解析度,從而提高 OCR 的精確度。 即使解析度低至 100 DPI,此配置也能大幅改善模糊或像素化文件的文字辨識能力。

每英吋點數 (DPI) 量測影像品質,並決定掃描文件或數位照片的詳細程度。雖然掃描文件既快速又有效率,但掃描過程通常會產生低解析度的檔案,尤其是使用預設或快速掃描設定時。 由於缺乏細節,文字顯得模糊或像素化,造成資料擷取的障礙。

OCR 效能取決於影像品質。 OCR 引擎會分析字形和模式,將其轉換為機器可讀的文字。 當圖像的 DPI 偏低時,就沒有足夠的像素來清楚定義每個字母,造成細節遺失,導致結果不準確。 對於使用 掃描文件或傳統數位化系統的開發人員而言,瞭解 DPI 最佳化對於可靠的文字擷取而言至關重要。

IronOCR 有效地處理了這些挑戰。 它能在解析度低至 225 DPI 的掃描上達到高準確度。 圖庫的影像預處理功能可自動偵測並補償各種影像品質問題,因此適用於處理來自不同來源的文件。 無論是在一行程式碼中執行 簡單的 OCR 或是建立複雜的文件處理管道,DPI 最佳化仍是一個關鍵因素。

快速入門:設定 TargetDPI 以獲得更清晰的 OCR 結果

配置 IronOCR,以單行方式提升低解析度圖片的解析度-以最小的努力提升文字的清晰度與辨識度。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronOCR

    PM > Install-Package IronOcr

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

    var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrInput { TargetDPI = 300 }.LoadImage("low-res.png"));
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronOCR,免費試用!
    arrow pointer

如何設定 DPI 以獲得更好的 OCR 結果? 本範例使用解析度約為 100 DPI 的低解析度範例影像,並加入人工雜訊以展示 `TargetDPI` 功能的有效性。 在使用 [OcrInput 類別](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-input-for-iron-tesseract/)時,瞭解如何設定 DPI 設定是非常重要的,該類別可提供影像預處理的全面控制。 圖片中的實際文字是:"測試 測試 測試 模糊文字範例 範例 範例"。
低解析度 100 DPI 樣本,顯示模糊、像素化的文字,證明 OCR 輸入品質不佳

我需要哪些程式碼來提升影像 DPI? 在這個範例中,我們將設定 `TargetDPI` 為 300,以提升影像解析度。 然後,我們將載入輸入的影像,並使用 `Text` 來列印擷取的文字,以及使用 `Confidence` 來列印置信度。 最佳 DPI 設定通常介於 250-400 DPI 之間,視您的使用情況和原始素材品質而定。 有關涉及多重影像濾鏡的進階方案,請參閱我們的 [OCR 影像最佳化濾鏡指南](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/)。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/dpi-setting.cs ```

使用 Upscaled DPI 可以期待什麼結果?
顯示 OCR 結果的除錯控制台:DPI 最佳化後,擷取文字的置信度達 85%
輸出結果顯示 IronOCR 達到 85% 的置信度。 儘管有顯著的雜訊,而且來源影像的初始 DPI 很低,結果還是很精確,證明了升頻功能的有效性。 此準確度超越了傳統的 OCR 解決方案,因為傳統的 OCR 解決方案在處理低品質的輸入時會很吃力。 對於需要更高準確度的應用程式,可考慮實施 [ 進度追蹤](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/),以即時監控信心等級,並動態調整設定。 IronOCR 包括內建功能,可在單一程式庫中透過升頻自動增強低解析度影像。 此方法可省去外部影像處理工具,簡化您的工作流程並減少依賴性。 對於[在 Windows 上開始使用 IronOCR](https://ironsoftware.com/csharp/ocr/get-started/windows/) 的開發人員而言,此功能可立即運作,無須額外設定。

DPI 設定如何影響 OCR 精確度? 為了說明其中的差異,以下是在未設定 `TargetDPI` 屬性的情況下處理相同低解析度影像的結果。 此比較說明了為何正確的 DPI 設定對於可靠的文字擷取至關重要。 找到正確的 DPI 需要平衡。 高 DPI 可提供更高的精確度,但處理速度較慢; 低DPI速度較快,但穩定性較差。 有疑問時,讓 `IronTesseract` 的自動預處理功能決定最佳設定。 您可以將 `TargetDPI` 屬性設定為 0,以停用自動升頻功能。如需專門的應用程式,請參閱我們的 [Tesseract 影像 DPI 最佳化指南](https://ironsoftware.com/csharp/ocr/examples/ocr-image-dpi-for-tesseract/)。

沒有 DPI 升頻會發生什麼?
調試控制台顯示不良的 OCR 結果:置信度為 79% 的亂碼文字,顯示低 DPI 擷取品質
如果不進行放大,置信度分數會下降到 79%,擷取的文字準確度也會明顯降低。 此比較強調設定 `TargetDPI` 如何改善低品質影像的 OCR 結果。 在處理包含表格、表單或多列版面的複雜文件時,差異會變得更加明顯。

如何設定 PDF 文件的 DPI? 在處理 PDF 時,IronOCR 會將整個文件升頻至目標 DPI,而不只是其中的影像。 這種全面的方法可確保整份文件的品質一致,這對於商業應用程式中的 [PDF OCR 文字萃取](https://ironsoftware.com/csharp/ocr/examples/csharp-pdf-ocr/)非常重要。 對於進階的 PDF 處理,例如處理 [ 可搜尋的 PDF](https://ironsoftware.com/csharp/ocr/how-to/searchable-pdf/),正確的 DPI 設定變得更加重要。 雖然較高的 DPI 通常會帶來較好的 OCR 結果,但不同 PDF 的最佳設定會有所不同。 如果您不確定該使用哪個值,請將 DPI 設定為預設值,讓 IronOCR 自動決定最佳配置。 該函式庫的演算法可分析字型大小、影像品質和內容密度等文件特性,以選擇適當的預處理參數。 ```csharp // Example: Processing a PDF with custom DPI settings using IronOcr; var ocrTesseract = new IronTesseract(); using var ocrInput = new OcrInput(); // Configure DPI specifically for PDF processing ocrInput.TargetDPI = 250; // Lower DPI often works well for PDFs // Load a multi-page PDF document ocrInput.LoadPdf(@"documents\scanned-report.pdf"); // Optional: Process only specific pages // ocrInput.LoadPdf(@"documents\scanned-report.pdf", PageSelection: new int[] {1, 3, 5}); // Apply additional filters if needed ocrInput.DeNoise(); // Remove digital noise ocrInput.Sharpen(); // Enhance text edges // Perform OCR with confidence tracking var ocrResult = ocrTesseract.Read(ocrInput); // Process results page by page foreach (var page in ocrResult.Pages) { Console.WriteLine($"Page {page.PageNumber}: {page.Confidence}% confidence"); Console.WriteLine(page.Text); } ```
警告 `TargetDPI`的最大值為 32,766。設定 DPI 超過此限制將導致異常。 這是因為產生的影像尺寸將超過 Tesseract 支援的最大尺寸 32,767 x 32,767 像素。 如果超出限制,您將收到以下錯誤訊息: 'TargetDPI 過高,會導致 Tesseract 無法處理過大的映像({new_width} x {new_height})。 Tesseract 的最大圖片尺寸為 32767 x 32767'
對於處理大量文件的企業應用程式,可考慮實施動態 DPI 調整策略。 開始時請使用中等設定 (300 DPI),然後根據信心分數進行調整。 此方法可平衡處理速度與精準度,確保不同文件類型的最佳效能。將 DPI 最佳化與其他預處理技術結合,可以為具有挑戰性的文件帶來更好的結果。 在處理特定文件類型時,DPI 要求可能會有所不同。 舉例來說,[閱讀車牌](https://ironsoftware.com/csharp/ocr/how-to/read-license-plate/)通常需要較高的 DPI 設定,這是因為字體尺寸較小,而且攝影機角度可能會造成影像失真。 同樣地,處理[MICR 支票](https://ironsoftware.com/csharp/ocr/how-to/read-micr-cheque/)也受益於特定的 DPI 配置,以準確擷取專門的 MICR 字型字元。 對於將 OCR 整合到 Web 應用程式或雲端服務的開發人員而言,瞭解 DPI 最佳化對於管理處理時間和伺服器資源至關重要。 微調 DPI 設定的功能可讓您根據特定的應用程式需求和基礎架構限制,最佳化精確度與效能之間的平衡。

常見問題解答

什麼是 DPI?為什麼它對 OCR 精確度很重要?

DPI (Dots Per Inch,每英吋點數) 量測影像品質,並決定掃描文件的詳細程度。對於 OCR 精確度而言,較高的 DPI 代表較清晰的字元定義。IronOcr 可處理解析度低至 225 DPI 的影像,同時維持高準確度,這都歸功於其先進的影像預處理能力。

如何改善低解析度影像的 OCR 結果?

在 IronOCR 的 OcrInput 類別中設定 TargetDPI 屬性,以提升低解析度影像的解析度。例如,將 TargetDPI 設定為 300 可顯著改善模糊或像素化文件的文字辨識能力,即使是解析度低至 100 DPI 的文件也不例外。

在 C# 中為 OCR 設定 DPI 的最快方法是什麼?

您可以使用 IronOCR 在一行程式碼中設定 DPI: var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrInput { TargetDPI = 300 }.LoadImage("low-res.png")).這會自動調高影像的縮放比例,以獲得更好的文字清晰度和辨識度。

OCR 可以有效處理低解析度的掃描文件嗎?

是的,IronOCR 是專為有效處理低解析度掃描文件而設計的。它能在解析度低至 225 DPI 的掃描檔案上達到高準確度,並包含自動影像預處理功能,可偵測和補償各種品質問題。

實施 OCR DPI 設定的基本步驟是什麼?

過程包括五個步驟:1) 下載 IronOCR 函式庫;2) Instantiate a new OcrInput object;3) Set the TargetDPI property to your desired value;4) LoadImage method 載入圖片;5) Extract text using the Read method。

為什麼預設掃描設定經常導致 OCR 效能不佳?

預設或快速掃描設定通常會產生低解析度檔案,以節省時間和儲存空間。這會造成文字模糊或像素化,失去細節,使 OCR 引擎難以準確辨識字形。IronOCR 的 TargetDPI 功能有助於克服此限制。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 5,246,844 | 版本: 2025.12 剛發表