如何在 C# 中偵測頁面旋轉以進行 OCR | IronOCR

How to Detect Page Rotation

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

確定頁面旋轉涉及識別應用於文件中頁面的旋轉程度。 此過程具體確定頁面是否以0、90、180和270度順時針或逆時針旋轉。 此信息對於準確呈現或處理文件至關重要,確保頁面以正確的方向顯示或打印。

快速入門:使用DetectPageOrientation識別頁面旋轉

在這個快速示例中,開發人員在加載的PDF上使用IronOCR的DetectPageOrientation,並立即訪問最有信心的頁面的RotationAngle。 這是一種快速檢測和校正頁面旋轉的方法,設置和代碼都極少。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation();
    Console.WriteLine(rotationResults.First().RotationAngle);
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小工作流程(5個步驟)

  1. 下載一個C#庫以檢測頁面旋轉
  2. 導入PDF文件和圖像以進行閱讀
  3. 使用DetectPageOrientation方法檢測所有頁面的旋轉
  4. 訪問RotationAngle屬性來校正頁面旋轉
  5. 訪問HighConfidence屬性來處理邊緣情況


檢測頁面旋轉示例

加載文件後,可以使用DetectPageOrientation方法來識別每個頁面的旋轉。 此方法支持0、90、180和270度。對於歪斜的圖像,可以使用Deskew圖像校正方法。 隨後,使用函數返回的度數將圖像旋轉回其原始方向。 讓我們進行一個PDF示例

[{i:(當文件文本密集時,該功能表現良好。)]

: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
$vbLabelText   $csharpLabel

理解結果

  • PageNumber:表示頁面的零基索引。
  • RotationAngle:提供以度數表示的旋轉角度。 此外,該信息可以與Rotate方法一起使用,以將圖像返回到其直立方向。
  • HighConfidence:表示方向結果的信心水平,有助於更有效地處理邊緣情況。

高級檢測頁面旋轉

DetectPageOrientation方法還允許您提供一個可選參數,以控制檢測的詳細程度。 通過提供OreitnationDetectioMode枚舉作為參數,用戶可以根據需要自定義和調整檢測速度和細節。

這裡有一個快速的代碼示例,說明如何使用它。

: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);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

目前有四種速度選項可供OrientationDetectionMode使用:

[{w:(使用BalancedDetailedExtremeDetailed選項需要安裝IronOcr.Extensions.AdvancedScan包。 這些選項目前不能在Windows x86和Mac ARM上使用。)}] - FastFast方向模式以高速但低精度檢測方向角;

因此,它更適合速度至關重要的草稿或批量處理。 這是DetectPageOrientation方法的默認設置。 - BalancedBalanced方向模式以平衡的速度和精度確定方向角;

它通常更適合默認或生產任務。 - DetailedDetailed方向模式以低速度但高精度確定方向角;

因此,它通常更適合精確或關鍵任務。 - ExtremeDetailedExtremeDetailed方向模式以最慢的速度確定方向角,但提供最高的精度。

然而,與其他選項相比速度較慢,只有在Detailed選項不夠或文本輸入本身嚴重歪斜和失真時才理想。 However, the slower speed compared to other options makes it ideal only when the Detailed option isn't sufficient or the text input itself is heavily skewed and distorted.

常見問題解答

如何使用 C# 偵測文件中的頁面旋轉角度?

您可以使用 IronOCR 的DetectPageOrientation方法來識別文件中頁面的旋轉方向。此方法可偵測 0 度、90 度、180 度和 270 度的旋轉角度。

在 IronOCR 中校正頁面旋轉涉及哪些步驟?

首先,使用DetectPageOrientation方法確定旋轉角度。然後,套用Rotate方法並傳入RotationAngle屬性來校正頁面方向。

IronOCR如何處理傾斜的文件影像?

對於傾斜的影像,IronOCR 提供了一種Deskew方法,可在應用旋轉校正之前校正傾斜。

哪些屬性有助於確保準確檢測頁面旋轉?

RotationAngle屬性指示校正所需的角度,而HighConfidence屬性顯示偵測到的方向的置信度,有助於處理極端情況。

如何確保使用 IronOCR 正確顯示文件頁面?

使用DetectPageOrientation方法找到旋轉角度,並使用該角度套用Rotate方法來校正頁面方向。

IronOCR 能有效處理文字密集型文件嗎?

是的,IronOCR 的DetectPageOrientation功能即使對於文字密集的文件也能表現出色。

IronOCR 中的PageNumber屬性表示什麼?

PageNumber屬性指示正在處理的頁面的從零開始的索引,有助於追蹤跨多個頁面的方向校正。

如何校正既旋轉又傾斜的文件?

首先,使用 IronOCR 的Deskew方法校正任何傾斜,然後套用DetectPageOrientation方法,再使用偵測到的RotationAngle應用Rotate方法校正任何旋轉。

在文件處理中,檢測頁面旋轉的重要性是什麼?

偵測頁面旋轉可確保文件準確渲染和處理,保持正確的顯示或列印方向,這對於 OCR 等應用程式至關重要。

IronOCR 能否處理單一文件中包含多個旋轉角度的文件?

是的,IronOCR 可以使用DetectPageOrientation方法來偵測並修正文件中每一頁的不同旋轉角度。

Curtis Chau
技術作家

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

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

審核人

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'name'

Filename: sections/author_component.php

Line Number: 70

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 70
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

">

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'title'

Filename: sections/author_component.php

Line Number: 84

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 84
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'comment'

Filename: sections/author_component.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once