OCR için Sayfa Dönüşünü C#'da Nasıl Algılarım | IronOCR

How to Detect Page Rotation in C# with IronOCR

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

IronOCR'un DetectPageOrientation yöntemi, PDF belgeleri ve görüntülerde sayfa dönüş açılarını (0°, 90°, 180°, 270°) otomatik olarak tanımlar. Her sayfa için bir RotationAngle özelliği döndürür, bu da doğru metin çıkarımı için güven puanları ile programatik yönlendirme düzeltmesine olanak tanır.

Sayfa dönmesi tespiti, bir belgenin sayfasının saat yönünde veya saat yönünün tersine 0, 90, 180 veya 270 derece döndürülüp döndürülmediğini tanımlar. Bu bilgi, sayfaların doğru bir şekilde render edilmesi ve metin çıkarılması için doğru yönlendirme ile görüntülenmesini veya işlenmesini sağlar.

Başlangıç: Sayfa Dönmesini Belirlemek İçin DetectPageOrientation Kullan

Bu örnek, PDF'de IronOCR'un DetectPageOrientation kullanılarak RotationAngle özelliğine erişimi gösterir. Minimal kod ile hızlı sayfa dönmesi tespiti ve düzeltmesi sağlar.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçasını kopyalayıp çalıştırın.

    var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation();
    Console.WriteLine(rotationResults.First().RotationAngle);
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronOCR kullanmaya başlayın ücretsiz deneme ile

    arrow pointer


Dökümanlarımda Sayfa Dönmesini Nasıl Tespit Ediyorum?

Bir belgeyi yükledikten sonra, her sayfanın rotasyonunu belirlemek için DetectPageOrientation yöntemini kullanın. Bu yöntem 0, 90, 180 ve 270 dereceyi destekler. Bu standart dönüşlerin ötesinde çarpık görüntüler için, IronOCR'un görüntü düzeltme filtrelerinden Deskew yöntemini kullanın. Daha sonra, tespit edilen açı kullanılarak görüntüyü orijinal yönelimine geri döndürün. Bir örnek PDF ile çalışalım.

Lütfen dikkate alinBu fonksiyon, metin yoğunluğuna sahip belgelerde en iyi performansı gösterir.

: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

Tespit Sonuçları Ne Anlama Geliyor?

  • PageNumber: Sayfanın sıfır bazlı indeksi.
  • RotationAngle: Derece cinsinden dönme açısı. Yönlendirmeyi düzeltmek için Rotate yöntemi ile kullanın.
  • HighConfidence: Sınır durumlarını ele almak için yönelim sonucu güven seviyesi.

Yüksek Güven Değerlerini Ne Zaman Kullanmalıyım?

HighConfidence özelliği, dönme tespitinin belirsiz olabileceği belirsiz veya düşük kaliteli belgeler için çok önemlidir. Seyrek metin, alışılmadık düzenler veya kötü tarama kalitesine sahip belgeler genellikle daha düşük güven puanları döndürür. Bu durumlarda, tespit öncesi ek doğrulama uygulayın veya görüntü kalite düzeltme filtreleri uygulayın.

Bu değeri, düşük güvene sahip sayfalar için yedek stratejiler uygulamak veya manuel inceleme yapmak için kullanın. Örneğin, güven %80'in altına düşerse, sayfayı birden fazla yönlendirme ile işleyin ve OCR sonuçlarını karşılaştırın veya manuel inceleme için işaretleyin. IronOCR'un bilgisayar görme özellikleri, zorlu belgelerde metin bölgelerini daha doğru tanımlamaya yardımcı olur.

Algılanan Dönmeyi Nasıl Düzeltebilirim?

Dönme açısını belirledikten sonra, OCR öncesi yönlendirmeyi düzeltmek için Rotate yöntemini OcrInput nesnenizde kullanın. Bu, optimal metin tanıma doğruluğunu sağlar. Detaylı yönlendirme düzeltmeleri için görüntü yönelim düzeltme rehberine bakın. Düzeltme işlemi şöyle:

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

Ek ön işleme gerektiren belgeler için, OCR işleme öncesi kapsamlı belge hazırlama yöntemleri sunan OcrInput Sınıfını düşünün.

Tespit Hızı ve Doğruluğunu Nasıl Özelleştirebilirim?

DetectPageOrientation yöntemi, tespit detaylarını kontrol etmek için isteğe bağlı bir parametre kabul eder. Gereksinimlerinize göre tespit hızı ve doğruluğunu ayarlamanıza olanak tanıyan OrientationDetectionMode enumlar sağlayarak yapabilirsiniz.

Bunu uygulama şekliniz şöyle:

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

Hangi Tespit Modunu Seçmeliyim?

OrientationDetectionMode için dört hızlılık seçeneği mevcuttur:

Uyarı Dengeli, Detaylı ve Aşırı Detaylı IronOcr.Extensions.AdvancedScan paketini gerektirir. Bu seçenekler Windows x86 ve Mac ARM'de mevcut değildir.

  • Hızlı: Daha düşük doğrulukla yüksek hızlı tespit. Hızın kritik olduğu taslaklar veya toplu işlemler için idealdir. DetectPageOrientation için varsayılan. Binlerce sayfayı çoklu iş parçacığı desteği ile verimli bir şekilde işler.
  • Dengeli: Dengeli hız ve doğruluk. Üretim görevleri için uygundur. Performansı korurken doğruluğu artırmak için Gelişmiş Tarama eklentisi yeteneklerini kullanır.
  • Detaylı: Düşük hız, yüksek doğruluk. Özellikle karmaşık düzenlere veya karma içeriklere sahip belgeler gibi hassas veya kritik görevler için en iyisidir.
  • Aşırı Detaylı: En yavaş hız, en yüksek doğruluk. Detaylı yeterli olmadığında veya metin aşırı eğik ve bozulmuş olduğunda kullanın.

Yaygın Performans Dikkatleri Nelerdir?

Performans, modlar arasında önemli ölçüde değişiklik gösterir. Hızlı mod dakikada yüzlerce sayfa işler; Aşırı Detaylı sayfa başına saniyeler alabilir. Doğruluk gereksinimlerine ve zaman kısıtlamalarına göre seçim yapın. Optimum performans için:

  1. Görüntü Çözünürlüğü: Daha yüksek DPI ayarları doğruluğu artırır ancak işlem süresini uzatır. Dönüş tespiti için genellikle 150-300 DPI yeterlidir.
  2. Belge Türü: Metin yoğun belgeler, dağınık düzenlerden daha hızlı ve daha doğru işlemden geçer. Tespitten önce görüntü kalitesini optimize etmek için Filtre Sihirbazı kullanın.
  3. Kaynak Kullanımı: Büyük yığınları işlerken bellek kullanımını izleyin. Geri bildirim sağlamak ve sistem kaynaklarını yönetmek için ilerleme takibi uygulayın.
  4. Paralel İşleme: Toplu işlemler için IronOCR'un çoklu iş parçacığını kullanarak birden fazla belgeyi aynı anda işleyin ve doğruluğu koruyun.

Karma Yönlendirmeli Belgeleri Nasıl İşlerim?

Karışık yönlendirme içeren belgeler için, her sayfayı DetectPageOrientation ile bireysel olarak işleyin ve sonra OCR öncesi sayfa sayfası dönüş düzeltmeleri uygulayın. Bu, başlangıç durumundan bağımsız olarak doğru yönlendirmeyi sağlar. İşte etkili bir yaklaşım:

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

Taranmış belgeler ile değişen kaliteye sahip veya çok sayfalı TIFF'ler içeren karmaşık senaryolar için her sayfayı ayrı ayrı önceden işlemeyi optimal sonuçlar için yapın.

Karma formatlı girdileri işlerken Ocr Sonuç Sınıfı ayrıntılı sayfa bilgileri sağlar ve bu, karmaşık hata ayıklama ve kalite kontrol iş akışlarını olanaklı kılar. Yüksek hacimli üretim ortamları için, hızı ve doğruluğu dengelemek için Hızlı OCR Yapılandırma seçeneklerini keşfedin.

Hem metin hem de barkod içeren belgeleri işlerken, IronOCR'un Barkod & QR Okuma ile OCR yeteneklerini kullanarak tüm bilgiyi tek bir geçişte çıkarın, verimliliği artırın.

Sıkça Sorulan Sorular

Sayfa dönüş algılama nedir ve neden önemlidir?

Sayfa dönüş algılama, bir belgenin sayfasının 0°, 90°, 180° veya 270° derece döndürülüp döndürülmediğini belirler. Bu, IronOCR'nin sayfaların doğru yönde işlendiğinden emin olması için kritik öneme sahiptir; böylece PDF'lerden ve görüntülerden doğru metin çıkarımı iletebilir.

C# kullanarak PDF'lerde sayfa dönüşünü hızlı bir şekilde nasıl algılarım?

Basit bir kodla IronOCR'un DetectPageOrientation yöntemini kullanın: var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation(); Bu, tüm sayfalar için rotation information döndürür ve RotationAngle özelliği yoluyla erişilebilir.

Hangi dönüş açıları algılanabilir?

IronOCR'un DetectPageOrientation yöntemi, 0°, 90°, 180° ve 270° derecelik standart dönüşleri algılayabilir. Bu standart dönüşlerin ötesindeki eğik görüntüler için, IronOCR'un görüntü düzeltme filtrelerinden Deskew yöntemini kullanın.

DetectPageOrientation ne tür bilgiler döndürür?

Yöntem her sayfa için üç ana özellik döndürür: PageNumber (sıfır tabanlı indeks), RotationAngle (IronOCR'un Rotate yöntemiyle kullanılacak derecelik dönüş) ve HighConfidence (uç durumları işlemek için güven seviyesi).

HighConfidence özelliğini ne zaman kullanmalıyım?

HighConfidence özelliğini döndürme tespitinin belirsiz olabileceği belirsiz veya düşük kaliteli belgelerle çalışırken kullanın. IronOCR'daki seyrek metinler, alışılmadık düzenler veya düşük tarama kalitesine sahip belgeler genellikle daha düşük güven puanları döndürür, ek doğrulama veya görüntü kalitesi düzeltme filtreleri gerektirebilir.

Bu özellik belirli türdeki belgelerde en iyi şekilde çalışır mı?

IronOCR'un DetectPageOrientation işlevi, metinle yoğun belgelerde en iyi performansı gösterir. Az metin içeren veya karmaşık düzenlere sahip belgelerde, en iyi sonuçlar için tespit öncesinde görüntü kalitesi düzeltme filtrelerini uygulamayı düşünün.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
İnceleyen
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluk Ekibi
Jeff, aynı zamanda .NET ve Visual Studio ekipleri için Baş Program Yöneticisi'dir. Microsoft geliştirici etkinlikleri (Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit) için atölye çalışmaları, sunumlar yazar ve içerik planlar ve haftada iki kez yayınlanan 'Fritz ve Arkadaşları' canlı yayınının ev sahibidir.
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.