如何使用 IronOCR 在 C# 中偵測頁面旋轉
IronOCR 的 DetectPageOrientation 方法可自動識別 PDF 文件和圖像中的頁面旋轉角度(0°、90°、180°、270°)。 它針對每頁返回一個 RotationAngle 屬性,可透過程式化方式進行方向校正,並提供信心分數以確保文字擷取的準確性。
頁面旋轉偵測功能可識別文件頁面是否已順時針或逆時針旋轉 0、90、180 或 270 度。 此資訊可確保頁面以正確的方位顯示或處理,以實現精確的渲染與文字擷取。
快速入門:使用 DetectPageOrientation 標示頁面輪替
此範例展示如何在 PDF 上使用 IronOCR 的 DetectPageOrientation 來存取 RotationAngle 屬性。 它能以最少的程式碼實現快速的頁面輪替偵測與修正。
簡化工作流程(5 個步驟)
- 下載 C# 函式庫以偵測頁面旋轉
- 匯入 PDF 文件及圖片以供閱讀
- 請使用
DetectPageOrientation方法來檢測所有頁面的旋轉方向 - 存取 RotationAngle 屬性以修正頁面旋轉方向
- 請使用 HighConfidence 屬性來處理邊界情況
如何在文件中偵測頁面旋轉?
載入文件後,請使用 DetectPageOrientation 方法來識別每頁的旋轉方向。 此方法支援 0、90、180 及 270 度。 對於超出這些標準旋轉角度的傾斜圖像,請使用 IronOCR 圖像校正濾鏡中的 Deskew 方法。 接著使用偵測到的角度,將圖片旋轉回原始方向。 讓我們以一份範例 PDF 文件來進行操作。
:path=/static-assets/ocr/content-code-examples/how-to/detect-page-rotation-detect-page-rotation.cs
using IronOcr;
using System;
using var input = new OcrInput();
// Load PDF document
input.LoadPdf("Clockwise90.pdf");
// Detect page rotation
var results = input.DetectPageOrientation();
// Ouput result
foreach(var result in results)
{
Console.WriteLine(result.PageNumber);
Console.WriteLine(result.HighConfidence);
Console.WriteLine(result.RotationAngle);
}
Imports IronOcr
Imports System
Private input = New OcrInput()
' Load PDF document
input.LoadPdf("Clockwise90.pdf")
' Detect page rotation
Dim results = input.DetectPageOrientation()
' Ouput result
For Each result In results
Console.WriteLine(result.PageNumber)
Console.WriteLine(result.HighConfidence)
Console.WriteLine(result.RotationAngle)
Next result
檢測結果代表什麼意思?
PageNumber:頁面的零起始索引。RotationAngle:以度為單位的旋轉角度。 請使用Rotate方法來修正方向。HighConfidence:處理邊界案例時,對方向判定結果的信心等級。
何時應使用高信心值?
對於含糊不清或品質較差的文件,當旋轉偵測結果可能不確定時,HighConfidence 屬性至關重要。 文字稀疏、版面配置特殊或掃描品質不佳的文件,通常會產生較低的信心分數。 在這些情況下,請於偵測前實施額外的驗證,或套用影像品質修正濾鏡。
請使用此數值,針對信心度較低的頁面實施備用策略或進行人工審核。 例如,若信心值低於 80%,請以多種方向處理頁面並比較 OCR 結果,或標記為需人工審查。 IronOCR 的電腦視覺功能有助於在複雜文件中更精確地識別文字區域。
如何修正偵測到的旋轉問題?
確定旋轉角度後,請在 OcrInput 物件上使用 Rotate 方法,於 OCR 處理前校正方向。 這能確保最佳的文字辨識準確度。 如需全面的方向修正方法,請參閱圖片方向修正指南。 以下是修正流程:
// Apply rotation correction based on detection results
if (result.RotationAngle != 0)
{
input.Rotate(360 - result.RotationAngle); // Rotate back to 0°
}
// Apply rotation correction based on detection results
if (result.RotationAngle != 0)
{
input.Rotate(360 - result.RotationAngle); // Rotate back to 0°
}
' Apply rotation correction based on detection results
If result.RotationAngle <> 0 Then
input.Rotate(360 - result.RotationAngle) ' Rotate back to 0°
End If
對於需要額外預處理的文件,請考慮使用 OcrInput 類別,該類別在 OCR 處理前提供廣泛的文件準備方法。
如何自訂偵測速度與準確度?
DetectPageOrientation 方法接受一個可選參數,用於控制偵測的詳細程度。 透過提供 OrientationDetectionMode 枚舉,您可以根據需求調整偵測速度與準確度。
以下是具體的翻譯方式:
:path=/static-assets/ocr/content-code-examples/how-to/detect-page-rotation-detect-page-rotation-advanced.cs
using IronOcr;
using System;
using var input = new OcrInput();
// Load PDF document
input.LoadPdf("Clockwise90.pdf");
// Detect page rotation with Fast mode
var results = input.DetectPageOrientation(OrientationDetectionMode.Fast);
// Ouput result
foreach(var result in results)
{
Console.WriteLine(result.PageNumber);
Console.WriteLine(result.HighConfidence);
Console.WriteLine(result.RotationAngle);
}
Imports IronOcr
Imports System
Using input As New OcrInput()
' Load PDF document
input.LoadPdf("Clockwise90.pdf")
' Detect page rotation with Fast mode
Dim results = input.DetectPageOrientation(OrientationDetectionMode.Fast)
' Output result
For Each result In results
Console.WriteLine(result.PageNumber)
Console.WriteLine(result.HighConfidence)
Console.WriteLine(result.RotationAngle)
Next
End Using
我應該選擇哪種偵測模式?
OrientationDetectionMode 提供四種速度選項:
IronOcr.Extensions.AdvancedScan 套件。 (這些選項在 Windows x86 和 Mac ARM 系統上不可用。)}]- 快速:檢測速度快,但準確度較低。 特別適合用於草稿或大量處理等速度至關重要的情境。
DetectPageOrientation的預設值。 支援多執行緒,可高效處理數千頁內容。 - 平衡:在速度與準確性之間取得平衡。 適用於正式生產環境。 利用 AdvancedScan 擴充功能提升準確性,同時維持效能。
- 詳盡模式:速度較慢,準確度較高。 最適合用於精確或關鍵任務,特別是版面配置複雜或內容混合的文件。
- 極致詳盡:速度最慢,準確度最高。 僅在"詳細"模式不足以處理,或文字嚴重傾斜變形時使用。
常見的效能考量有哪些?
不同模式之間的效能差異顯著。 快速模式每分鐘可處理數百頁; ExtremeDetailed 每頁可能需要數秒時間。 請根據準確性要求與時間限制進行選擇。 為獲得最佳效能:
如何處理混合方向的文件?
對於方向不一的文件,請先使用 DetectPageOrientation 分別處理每頁,然後在執行 OCR 之前,逐頁進行旋轉校正。 這可確保無論初始狀態為何,皆能正確顯示。 以下是一種有效的翻譯方法:
// Process each page with individual rotation detection
for (int i = 0; i < results.Co/unt; i++)
{
var pageResult = results[i];
// Apply rotation only to pages that need it
if (pageResult.RotationAngle != 0 && pageResult.HighConfidence)
{
// Correct the specific page
input.Pages[i].Rotate(360 - pageResult.RotationAngle);
}
}
// Process each page with individual rotation detection
for (int i = 0; i < results.Co/unt; i++)
{
var pageResult = results[i];
// Apply rotation only to pages that need it
if (pageResult.RotationAngle != 0 && pageResult.HighConfidence)
{
// Correct the specific page
input.Pages[i].Rotate(360 - pageResult.RotationAngle);
}
}
' Process each page with individual rotation detection
For i As Integer = 0 To results.Count - 1
Dim pageResult = results(i)
' Apply rotation only to pages that need it
If pageResult.RotationAngle <> 0 AndAlso pageResult.HighConfidence Then
' Correct the specific page
input.Pages(i).Rotate(360 - pageResult.RotationAngle)
End If
Next
若涉及品質參差不齊的掃描文件或多頁 TIFF 檔案等複雜情境,請分別對每頁進行預處理以獲得最佳效果。
在處理混合格式的輸入時,OcrResult 類別會提供詳細的頁面資訊,從而支援精細的錯誤處理與品質控制工作流程。 針對高吞吐量的生產環境,請探索"快速 OCR 設定"選項,以在速度與準確性之間取得平衡。
若需處理同時包含文字與 BARCODE 的文件,請使用具備 BARCODE 與 QR 碼讀取功能的 IronOCR OCR,以單次處理提取所有資訊,從而提升效率。
常見問題
何謂頁面旋轉偵測?為何它如此重要?
頁面旋轉偵測功能可識別文件頁面是否已旋轉 0°、90°、180° 或 270°。此功能對 IronOCR 至關重要,能確保頁面以正確方向進行處理,從而實現從 PDF 和圖像中精準提取及呈現文字。
如何使用 C# 快速偵測 PDF 中的頁面旋轉?
using IronOCR 的 DetectPageOrientation 方法,僅需少量程式碼:var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation(); 此方法會傳回所有頁面的旋轉資訊,可透過 RotationAngle 屬性取得。
可偵測哪些旋轉角度?
IronOCR 的 DetectPageOrientation 方法可偵測 0°、90°、180° 及 270° 的標準旋轉角度。若遇到超出這些標準旋轉角度的傾斜影像,請使用 IronOCR 影像修正濾鏡中的 Deskew 方法。
DetectPageOrientation 會回傳哪些資訊?
此方法針對每頁返回三個關鍵屬性:PageNumber(從零開始的索引)、RotationAngle(以度為單位的旋轉角度,用於搭配 IronOCR 的 Rotate 方法),以及 HighConfidence(處理邊界案例時的信心水準)。
何時應使用 HighConfidence 屬性?
當處理含義模糊或品質較差的文件,且旋轉偵測結果可能不確定時,請使用 HighConfidence 屬性。文字稀疏、版面配置特殊或掃描品質不佳的文件,在 IronOcr 中通常會產生較低的信心分數,因此需要進行額外的驗證或套用影像品質修正濾鏡。
此功能是否在處理特定類型的文件時效果最佳?
IronOCR 的 DetectPageOrientation 函式在文字密集的文件上表現最佳。對於文字極少或版面配置複雜的文件,建議在進行偵測前先套用影像品質修正濾鏡,以獲得最佳效果。
IronOCR 能否整合至現有應用程式中?
IronOCR 設計上可輕鬆透過 C# 整合至現有應用程式中,讓開發人員能以最少的努力,為其軟體增添 OCR 功能。
使用 IronOCR 進行文件管理有哪些好處?
使用 IronOCR 進行文件管理,可將掃描文件轉換為可搜尋且可編輯的文字,從而簡化工作流程,減少人工資料輸入的需求,並提升文件的可存取性。
IronOCR 如何提升資料準確性?
IronOCR 透過其先進的辨識演算法與影像校正功能來提升資料準確性,確保文字擷取過程既可靠又精確。
IronOCR 是否有提供免費試用版?
是的,Iron Software 提供 IronOCR 的免費試用版,讓使用者能在決定購買前測試其功能與效能。

