Jak wykryć obrót strony w C# za pomocą IronOCR
Metoda DetectPageOrientation IronOCR automatycznie identyfikuje kąty rotacji stron (0°, 90°, 180°, 270°) w dokumentach PDF i obrazach. Zwraca właściwość RotationAngle dla każdej strony, umożliwiając programową korekcję orientacji z wynikami pewności dla dokładnego wyodrębniania tekstu.
Wykrywanie rotacji strony identyfikuje, czy strona dokumentu została obrócona zgodnie z ruchem zegara lub przeciwnie do niego o 0, 90, 180 lub 270 stopni. Ta informacja zapewnia, że strony są wyświetlane lub przetwarzane w prawidłowej orientacji dla dokładnego renderowania i wyodrębniania tekstu.
Szybki start: Użyj DetectPageOrientation, aby zidentyfikować rotację strony
Ten przykład demonstruje użycie DetectPageOrientation IronOCR na PDF-ie, aby uzyskać dostęp do właściwości RotationAngle. Zapewnia szybkie wykrywanie i korektę rotacji strony przy minimalnej ilości kodu.
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation(); Console.WriteLine(rotationResults.First().RotationAngle); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C#, aby wykryć rotację strony
- Zaimportuj dokument PDF i obrazy do odczytu
- Użyj metody
DetectPageOrientation, aby wykryć rotację dla wszystkich stron - Uzyskaj dostęp do właściwości
RotationAngle, aby skorygować rotację strony - Uzyskaj dostęp do właściwości
HighConfidence, aby obsługiwać przypadki szczególne
Jak wykryć rotację strony w moich dokumentach?
Po załadowaniu dokumentu, użyj metody DetectPageOrientation, aby zidentyfikować rotację każdej strony. Ta metoda obsługuje 0, 90, 180 i 270 stopni. Dla obrazów o skośnym układzie poza tymi standardowymi rotacjami, użyj metody Deskew z filtrów korekcji obrazów IronOCR. Następnie obróć obraz z powrotem do jego pierwotnej orientacji za pomocą wykrytego kąta. Pracujmy z przykładowym PDF-em.
: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
Co oznaczają wyniki wykrywania?
PageNumber: Indeks strony zaczynający się od zera.RotationAngle: Kąt rotacji w stopniach. Użyj z metodąRotate, aby skorygować orientację.HighConfidence: Poziom pewności w wyniku orientacji dla obsługi przypadków szczególnych.
Kiedy używać wartości wysokiej pewności?
Właściwość HighConfidence jest kluczowa dla niejednoznacznych lub niskiej jakości dokumentów, w których wykrywanie rotacji może być niepewne. Dokumenty z rzadkim tekstem, nietypowym układem lub złej jakości skanem często zwracają niższe wyniki pewności. W takich przypadkach zaimplementuj dodatkową walidację lub zastosuj filtry korekcji jakości obrazów przed wykrywaniem.
Użyj tej wartości, aby wdrożyć strategie awaryjne lub ręczną kontrolę stron o niskiej pewności. Na przykład, jeśli poziom pewności spadnie poniżej 80%, przetwarzaj stronę w kilku orientacjach i porównuj wyniki OCR, lub zaznacz do ręcznej kontroli. Funkcje wizji komputerowej IronOCR pomagają dokładniej identyfikować regiony tekstowe w trudnych dokumentach.
Jak poprawić wykrytą rotację?
Po zidentyfikowaniu kąta rotacji, użyj metody Rotate na obiekcie OcrInput, aby poprawić orientację przed OCR. Zapewnia to optymalną dokładność rozpoznawania tekstu. W celu kompleksowych poprawek orientacji, zobacz przewodnik korekcji orientacji obrazów. Oto proces korekcji:
// 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
Dla dokumentów wymagających dodatkowego wstępnego przetwarzania, rozważ klasę OcrInput, która oferuje szerokie metody przygotowania dokumentu przed przetwarzaniem OCR.
Jak mogę dostosować szybkość i dokładność wykrywania?
Metoda DetectPageOrientation akceptuje opcjonalny parametr do kontrolowania szczegółowości wykrywania. Dzięki dostarczeniu enumów OrientationDetectionMode możesz dostosować szybkość i dokładność wykrywania w zależności od swoich wymagań.
Oto, jak to zaimplementować:
: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
Który tryb wykrywania powinienem wybrać?
Dostępne są cztery opcje szybkości dla OrientationDetectionMode:
- Fast: Wysoka szybkość wykrywania przy niższej dokładności. Idealne dla wersji roboczych lub masowego przetwarzania, gdzie szybkość jest kluczowa. Domyślny dla
DetectPageOrientation. Efektywnie obsługuje tysiące stron dzięki wsparciu dla wielowątkowości. - Balanced: Zbalansowana szybkość i dokładność. Odpowiedni do zadań produkcyjnych. Wykorzystuje możliwości rozszerzenia AdvancedScan dla poprawionej dokładności przy zachowaniu wydajności.
- Detailed: Niska szybkość, wysoka dokładność. Najlepszy dla precyzyjnych lub krytycznych zadań, szczególnie w dokumentach złożonych układów lub mieszanej treści.
- ExtremeDetailed: Najwolniejsza szybkość, najwyższa dokładność. Używaj tylko, gdy Detailed jest niewystarczający lub tekst jest silnie pochylony i zniekształcony.
Jakie są najczęstsze kwestie związane z wydajnością?
Wydajność znacznie różni się między trybami. Tryb Fast przetwarza setki stron na minutę; Tryb ExtremeDetailed może zająć sekundy na stronę. Wybierz na podstawie wymagań dotyczących dokładności i ograniczeń czasowych. Dla optymalnej wydajności:
- Rozdzielczość obrazu: Wyższe ustawienia DPI poprawiają dokładność, ale zwiększają czas przetwarzania. 150-300 DPI zazwyczaj wystarcza do wykrywania rotacji.
- Typ dokumentu: Dokumenty o dużej gęstości tekstu przetwarzają się szybciej i dokładniej niż rzadkie układy. Użyj kreatora filtrów, aby zoptymalizować jakość obrazu przed wykryciem.
- Użycie zasobów: Monitoruj użycie pamięci podczas przetwarzania dużych serii. Zaimplementuj śledzenie postępów, aby zapewnić feedback i zarządzać zasobami systemowymi.
- Przetwarzanie równoległe: Dla operacji masowych, użyj wielowątkowości IronOCR, aby przetwarzać wiele dokumentów jednocześnie, zachowując dokładność.
Jak obsłużyć dokumenty o mieszanej orientacji?
Dla dokumentów o mieszanej orientacji, przetwarzaj każdą stronę indywidualnie za pomocą DetectPageOrientation, a następnie przed przetwarzaniem OCR zastosuj korektę rotacji strona po stronie. To zapewnia prawidłową orientację, niezależnie od stanu początkowego. Oto skuteczne podejście:
// Process each page with individual rotation detection
for (int i = 0; i < results.Count; 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.Count; 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
Dla złożonych scenariuszy obejmujących zeskanowane dokumenty o różnej jakości lub wielostronicowe TIFF-y, przetwarzaj każdą stronę indywidualnie, aby uzyskać optymalne wyniki.
Podczas przetwarzania różnorodnych formatów wejściowych, klasa OcrResult oferuje szczegółowe informacje o stronach, umożliwiając zaawansowane obsługi błędów i kontrolę jakości. Dla środowisk produkcyjnych o wysokiej przepustowości, zbadaj opcje szybkiej konfiguracji OCR dla zbalansowania szybkości i dokładności.
Jeśli przetwarzasz dokumenty zawierające zarówno tekst, jak i kody kreskowe, użyj funkcji OCR z odczytem kodów kreskowych i QR IronOCR, aby wyodrębnić wszystkie informacje podczas jednego przejścia, poprawiając wydajność.
Często Zadawane Pytania
Czym jest wykrywanie rotacji stron i dlaczego jest to wazne?
Wykrywanie rotacji stron identyfikuje, czy strona dokumentu zostala obrocona o 0°, 90°, 180° lub 270° stopni. Jest to kluczowe dla IronOCR, aby zapewnic przetwarzanie stron w poprawnej orientacji, umozliwiajac dokladne wyodrebnianie tekstu i renderowanie z plikow PDF i obrazow.
Jak szybko wykryc rotacje stron w pliku PDF za pomoca C#?
Uzyj metody DetectPageOrientation z IronOCR z minimalnym kodem: var rotationResults = new IronOcr.OcrInput().LoadPdf('doc.pdf').DetectPageOrientation(); To zwraca informacje o rotacji dla wszystkich stron, dostepne przez wlasciwosc RotationAngle.
Jakie katy rotacji mozna wykryc?
Metoda DetectPageOrientation z IronOCR moze wykrywac standardowe rotacje o 0°, 90°, 180° i 270° stopni. Dla obrazow przekrzywionych poza te standardowe rotacje, uzyj metody Deskew z IronOCR z filtrow korekcji obrazu.
Jakie informacje zwraca DetectPageOrientation?
Metoda zwraca trzy kluczowe wlasciwosci dla kazdej strony: PageNumber (indeks zero-based), RotationAngle (rotacja stopni do uzycia z metoda Rotate IronOCR) oraz HighConfidence (poziom pewnosci dla obslugi przypadkow brzegowych).
Kiedy powinienem uzywac wlasciwosci HighConfidence?
Uzyj wlasciwosci HighConfidence, pracujac z niejednoznacznymi lub niskiej jakosci dokumentami, w ktorych wykrywanie rotacji moze byc niepewne. Dokumenty z rzadka iloscia tekstu, nietypowymi ukladem lub niskiej jakosci skanami czesto zwracaja niskie poziomy pewnosci w IronOCR, wymagajac dodatkowej walidacji lub zastosowania filtrow korekcji jakosci obrazu.
Czy ta funkcja najlepiej dziala z okreslonymi typami dokumentow?
Funkcja DetectPageOrientation z IronOCR najlepiej dziala z dokumentami o duzej gestosci tekstu. Dla dokumentow z minimalnym tekstem lub zlozonymi ukladem, rozwnaz zastosowanie filtrow korekcji jakosci obrazu przed wykrywaniem dla uzyskania optymalnych wynikow.

