IRONSOFTWAREHOME

Jak wykryć obrót strony w C# z IronOCR

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

Metoda DetectPageOrientation IronOCR automatycznie identyfikuje kąty obrotu stron (0°, 90°, 180°, 270°) w dokumentach PDF i obrazach. Zwraca właściwość RotationAngle dla każdej strony, umożliwiając programowe poprawienie orientacji z oceną 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 do identyfikacji obrotu strony

Ten przykład demonstruje użycie DetectPageOrientation IronOCR na PDF do uzyskania dostępu do właściwości RotationAngle. Zapewnia szybkie wykrywanie i korektę rotacji strony przy minimalnej ilości kodu.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Skopiuj i uruchom ten fragment kodu.

    var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation();
    Console.WriteLine(rotationResults.First().RotationAngle);
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
    arrow pointer

Jak wykryć rotację strony w moich dokumentach?

Po załadowaniu dokumentu użyj metody DetectPageOrientation, aby zidentyfikować obrót każdej strony. Ta metoda obsługuje 0, 90, 180 i 270 stopni. Dla zniekształconych obrazów poza tymi standardowymi obrotami, użyj metody Deskew z filtrów korekcji obrazu IronOCR. Następnie obróć obraz z powrotem do jego pierwotnej orientacji za pomocą wykrytego kąta. Pracujmy z przykładowym PDF-em.

Zwróć uwagę: Ta funkcja działa najlepiej z dokumentami o dużej gęstości tekstu.
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);
}

Co oznaczają wyniki wykrywania?

  • PageNumber: Indeks zerowy strony.
  • RotationAngle: Kąt obrotu w stopniach. Użyj z metodą Rotate, aby poprawić orientację.
  • HighConfidence: Poziom pewności w wyniku orientacji w przypadku krawędziowych przypadków.

Kiedy używać wartości wysokiej pewności?

Właściwość HighConfidence jest kluczowa dla niejednoznacznych lub niskiej jakości dokumentów, gdzie detekcja obrotu może być niepewna. 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 obrotu, 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°
}

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 przyjmuje opcjonalny parametr do sterowania szczegółowością detekcji. Podając enumy OrientationDetectionMode, możesz dostosować prędkość i dokładność detekcji w zależności od swoich wymagań.

Oto, jak to zaimplementować:

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);
}

Który tryb wykrywania powinienem wybrać?

Cztery opcje prędkości są dostępne dla OrientationDetectionMode:

Ostrzeżenie: Zrównoważona, Szczegółowa i Niesamowicie szczegółowa wymagają pakietu IronOcr.Extensions.AdvancedScan. Te opcje są niedostępne na Windows x86 i Mac ARM.
  • Fast: Wysoka szybkość wykrywania przy niższej dokładności. Idealne dla wersji roboczych lub masowego przetwarzania, gdzie szybkość jest kluczowa. Domyślne 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:

  1. Rozdzielczość obrazu: Wyższe ustawienia DPI poprawiają dokładność, ale zwiększają czas przetwarzania. 150-300 DPI zazwyczaj wystarcza do wykrywania rotacji.
  2. 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.
  3. 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.
  4. 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 z mieszanym orientowaniem przetwarzaj każdą stronę osobno z DetectPageOrientation, następnie stosuj poprawki obrotów strona po stronie przed OCR. 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);
    }
}

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, umożliwiajac 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.

How do I limit memory usage when detecting orientation on large PDFs?

Pass a maxDegreeOfParallelism value to the DetectPageOrientation overload, for example input.DetectPageOrientation(OrientationDetectionMode.Fast, maxDegreeOfParallelism: 2). This caps how many pages are analysed at the same time, and because each concurrent page uses its own native engine, it directly caps peak memory. A non-positive value falls back to Environment.ProcessorCount.

Does adding the maxDegreeOfParallelism parameter break existing code?

No. The single-argument DetectPageOrientation overload is unchanged and remains fully supported, so existing code continues to work without modification. In Fast mode, orientation detection is also more memory efficient because it reuses one engine per worker thread rather than allocating one per page, and results are unchanged.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 6,236,385Wersja:2026.9właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz Przeglądaj i szukaj „IronOCR”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz Instalator Windows tutaj.

  1. Pobierz i rozpakuj IronOCR do lokalizacji, takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań Visual Studio kliknij prawym przyciskiem myszy Odwołania. Wybierz Przeglądaj, „IronOCR.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Otrzymaj swoją Konsultację Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta