如何使用 C# 設定 OCR 中的 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 最佳化仍然是關鍵因素。

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

配置IronOCR ,使其能夠在一行中放大低解析度影像,從而以最少的努力提高文字清晰度和識別率。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/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 類別時,了解如何配置 DPI 設定至關重要,因為該類別提供了對影像預處理的全面控制。

圖片中的實際文字是:"測試 測試 測試 模糊文字範例 範例 範例"。

低解析度(100 DPI)樣本顯示模糊、像素化的文本,表示 OCR 輸入品質差。

我需要寫什麼程式碼來提升影像的DPI?

在這個例子中,我們將把 TargetDPI 設為 300 來提高影像解析度。 然後我們將加載輸入圖像,並使用 Text 列印提取的文本,並使用 Confidence 列印置信度。 最佳 DPI 設定通常在 250-400 DPI 之間,具體取決於您的使用情況和來源材料品質。 對於涉及多個影像濾波器的高級場景,請參閱我們的OCR 影像最佳化濾波器指南。

:path=/static-assets/ocr/content-code-examples/how-to/dpi-setting.cs
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();

using var ocrInput = new OcrInput();
// Set the target DPI to 300 for better OCR accuracy
ocrInput.TargetDPI = 300;

ocrInput.LoadImage(@"images\image.png");

// Perform OCR on the image with the specified DPI
var ocrResult = ocrTesseract.Read(ocrInput);
// Display the text extracted from the image
Console.WriteLine(ocrResult.Text);
// Display the confidence level of the OCR result
Console.WriteLine(ocrResult.Confidence);
$vbLabelText   $csharpLabel

使用高DPI解析度可以獲得哪些效果?

偵錯控制台顯示 OCR 結果:DPI 優化後提取的文字置信度為 85%。

輸出結果顯示IronOCR 的置信度得分達到 85%。 儘管雜訊較大且來源影像的初始 DPI 較低,但結果仍然準確,證明了放大功能的有效性。 這種準確度超過了傳統的 OCR 解決方案,後者在處理低品質輸入時會遇到困難。 對於需要更高精度的應用,可以考慮實施進度跟踪,以即時監控置信度並動態調整設定。

IronOCR包含內建功能,可透過在單一圖庫中放大低解析度影像來自動增強影像品質。 這種方法無需外部影像處理工具,簡化了工作流程並減少了依賴性。 對於剛開始在 Windows 上使用IronOCR 的開發人員來說,此功能無需額外配置即可立即使用。

DPI設定如何影響OCR準確率?

為了說明區別,以下是在不設定 TargetDPI 屬性的情況下處理相同低解析度影像的結果。 此對比表明,正確的 DPI 配置對於可靠的文字擷取至關重要。

找到合適的DPI需要平衡。 高DPI提供更高的精度,但處理速度較慢; 低DPI速度較快,但穩定性較差。 如有疑問,請讓 IronTesseract 的自動預處理功能確定最佳設定。 您可以將 TargetDPI 屬性設為 0 來停用自動放大。對於特殊應用,請瀏覽我們關於Tesseract 圖像 DPI 優化的指南。

如果沒有DPI放大會發生什麼事?

偵錯控制台顯示 OCR 結果不佳:文字亂碼,置信度僅為 79%,表示 DPI 提取品質低。

如果不進行放大,置信度分數會下降到 79%,擷取的文字準確度也會明顯降低。 此對比突顯了設定 TargetDPI 如何改善低品質影像的 OCR 結果。 當處理包含表格、表單或多列佈局的複雜文件時,這種差異會更加明顯。

如何設定PDF文件的DPI?

在處理 PDF 時, IronOCR會將整個文件放大到目標 DPI,而不僅僅是其中的圖像。 這種全面的方法確保了整個文件品質的一致性,這對於商業應用中的PDF OCR 文字擷取至關重要。 對於進階 PDF 處理(例如處理可搜尋 PDF) ,正確的 DPI 配置就顯得更加重要。

雖然更高的 DPI 通常能帶來更好的 OCR 效果,但最佳設定會因 PDF 檔案而異。 如果您不確定要使用哪個值,請將 DPI 保留為預設設置,讓IronOCR自動確定最佳配置。 此函式庫的演算法會分析文件特徵,例如字體大小、影像品質和內容密度,以選擇合適的預處理參數。

// 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);
}
// 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);
}
$vbLabelText   $csharpLabel

警告 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 要求可能會有所不同。 例如,由於車牌字元較小以及相機角度可能導致影像失真,讀取車牌通常需要更高的 DPI 設定。 同樣,處理MICR 支票時,需要特定的 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,556,263 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronOcr
執行範例 觀看您的圖片變成可搜尋的文字。