C# Dilinde OCR için Sayfa Döndürme Nasıl Tespit Edilir | IronOCR

IronOCR ile C#'ta Sayfa Döndürme Tespit Etme

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

IronOCR'nin DetectPageOrientation yöntemi, PDF belgelerinde ve görüntülerde sayfa döndürme açılarını (0°, 90°, 180°, 270°) otomatik olarak tanımlar. Her sayfa için bir RotationAngle özelliği döndürür ve doğru metin çıkarma için güven puanlarıyla programlı yön düzeltmesini mümkün kılar.

Sayfa döndürme algılama, bir belge 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 belirler. Bu bilgi, sayfaların doğru bir biçimde görüntülenmesi veya işlenmesi için doğru yönlendirme ile sunulmasını ve metin çıkarımının doğru yapılmasını sağlar.

Hızlı Başlangıç: Sayfa Döndürmeyi Belirlemek için DetectPageOrientation'yi Kullanın

Bu örnek, DetectPageOrientation özelliğine erişmek için bir PDF üzerinde IronOCR'nin RotationAngle özelliğini kullanmayı göstermektedir. Hızlı sayfa döndürme algılama ve düzeltme işlemi için minimal kod ile sağlar.

  1. IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

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

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

    arrow pointer


Belgelerimde Sayfa Döndürmeyi Nasıl Tespit Edebilirim?

Bir belgeyi yükledikten sonra, her sayfanın dönüşünü belirlemek için DetectPageOrientation yöntemini kullanın. Bu yöntem 0, 90, 180 ve 270 dereceyi destekler. Bu standart döndürme değerlerinin ötesinde eğri görüntüler için, IronOCR'nin görüntü düzeltme filtrelerinden Deskew yöntemini kullanın. Ardından görüntüyü algılanan açıyı kullanarak orijinal yönüne geri döndürün. Bir örnek PDF ile çalışalım.

Lütfen dikkate alınBu işlev, metin yoğun belgelerle en iyi şekilde çalışır.

: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 tabanlı dizini.
  • RotationAngle: Derece cinsinden dönme açısı. Yönü düzeltmek için Rotate yöntemini kullanın.
  • HighConfidence: Sınır durumlarını ele almak için yönlendirme sonucundaki güven düzeyi.

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

HighConfidence özelliği, döndürme algılamasının belirsiz olabileceği, anlamı belirsiz veya düşük kaliteli belgeler için çok önemlidir. Seyrek metin, alışılmadık düzen veya kötü tarama kalitesine sahip belgeler genellikle daha düşük güven puanları döndürür. Bu durumlarda, tespit öncesinde ek doğrulama uygulayın veya görüntü kalitesi düzeltme filtrelerini kullanın.

Düşük güvene sahip sayfalar için yedekleme stratejileri veya manuel inceleme yapmak için bu değeri kullanın. Örneğin, güvenilirlik %80'in altına düşerse, sayfayı birden fazla yönde işleyin ve OCR sonuçlarını karşılaştırın veya manuel inceleme için işaretleyin. IronOCR'nin bilgisayarlı görü özellikleri, zorlayıcı belgelerdeki metin bölgelerini daha doğru bir şekilde tanımlamaya yardımcı olur.

Tespit Edilen Döndürmeyi Nasıl Düzeltirim?

Dönüş açısını belirledikten sonra, OCR işleminden önce yönü düzeltmek için Rotate nesnenizde OcrInput yöntemini kullanın. Bu, en iyi metin tanıma doğruluğunu garanti eder. Kapsamlı yönlendirme düzeltmeleri için, görüntü yönlendirme düzeltme kılavuzuna bakın. İşte düzeltme süreci:

// 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şleminden önce kapsamlı belge hazırlama yöntemleri sunan OcrInput Sınıfını dikkate alın.

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

DetectPageOrientation yöntemi, algılama ayrıntılarını kontrol etmek için isteğe bağlı bir parametre kabul eder. OrientationDetectionMode enumlarını kullanarak, gereksinimlerinize göre algılama hızını ve doğruluğunu ayarlayabilirsiniz.

İşte nasıl uygulayacağınız:

: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ız seçeneği mevcuttur:

UyarıBalanced, Detailed ve ExtremeDetailed için IronOcr.Extensions.AdvancedScan paketi gereklidir. Bu seçenekler Windows x86 ve Mac ARM'de mevcut değildir.

  • Hızlı: Daha düşük doğrulukla yüksek hızlı algılama. Taslaklar veya hızın kritik olduğu toplu işleme için idealdir. DetectPageOrientation için varsayılan. Binlerce sayfayı verimli bir şekilde işler ve çoklu iş parçacığı desteği sunar.
  • Balanced: Dengeli hız ve doğruluk. Üretim görevleri için uygundur. AdvancedScan uzantısı özelliklerini kullanarak performansı korurken daha iyi doğruluk sağlar.
  • Detaylı: Düşük hız, yüksek doğruluk. Karmaşık düzenler veya karışık içerikle belgeler gibi hassas veya kritik görevler için en iyisi. ExtremeDetailed: En yavaş hız, en yüksek doğruluk. Sadece Detaylı yetersiz olduğunda veya metin aşırı çarpık ve bozuk olduğunda kullanın.

Genel Performans Dikkate Alınması Gerekenler Nelerdir?

Modlar arasında performans önemli ölçüde farklılık göstermektedir. Hızlı mod, dakikada yüzlerce sayfa işler; ExtremeDetailed sayfa başına saniyeler sürebilir. Doğruluk gereksinimlerine ve zaman kısıtlamalarına göre seçin. En iyi 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. 150-300 DPI genellikle döndürme tespiti için yeterlidir.
  2. Belge Türü: Metin yoğun belgeler, seyrek düzenlerden daha hızlı ve daha doğru işlenir. Algılamadan önce görüntü kalitesini optimize etmek için Filtre Sihirbazını kullanın.
  3. Kaynak Kullanımı: Büyük yığınları işlerken bellek kullanımını izleyin. İlerleme izlemeyi uygulayarak geri bildirim sağlayın ve sistem kaynaklarını yönetin.
  4. Paralel İşleme: Toplu işlemler için, birden fazla belgeyi aynı anda ve doğruluğu koruyarak işlemek amacıyla IronOCR'un çoklu iş parçacığını kullanın.

Farklı Yönlendirme İçeren Belgeleri Nasıl Ele Alırım?

Karışık yönlendirmeli belgeler için, her sayfayı DetectPageOrientation ile ayrı ayrı işleyin, ardından OCR işleminden önce sayfa sayfa döndürme düzeltmeleri uygulayın. Bu, başlangıç durumu ne olursa olsun doğru yönlendirilmesini 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

Karmaşık senaryolar için, değişken kalitedeki taralı belgeler veya çok sayfalı TIFF'ler içeren durumlarda, en iyi sonuçlar için her sayfayı ayrı ayrı ön işleme tabi tutun.

Karma biçimli girdileri işlerken, OcrResult Sınıfı ayrıntılı sayfa bilgileri sağlayarak gelişmiş hata yönetimi ve kalite kontrol işlemlerine olanak tanır. Yüksek çıkışlı üretim ortamları için, hız ve doğruluğu dengelemek amacıyla Hızlı OCR Yapılandırma seçeneklerini keşfedin.

Hem metin hem de barkod içeren belgeleri işliyorsanız, tüm bilgileri tek bir seferde çıkarmak ve verimliliği artırmak için IronOCR'un Barkod ve QR Okuma ile OCR yeteneklerini kullanın.

Sıkça Sorulan Sorular

Sayfa döndürme algılama nedir ve neden önemlidir?

Sayfa döndürme algılama, bir belge sayfasının 0°, 90°, 180° veya 270° derecelerinde döndürülüp döndürülmediğini belirler. Bu, IronOCR için sayfaların doğru yönlendirme ile işlenmesini, PDF'lerden ve görüntülerden doğru metin çıkışı ve render yapılmasını sağlamak açısından hayati önem taşır.

C# dilinde bir PDF'deki sayfa döndürmeyi hızlıca nasıl algılarım?

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

Hangi döndürme açıları algılanabilir?

IronOCR'un DetectPageOrientation yöntemi 0°, 90°, 180° ve 270° derecelik standart döndürmeleri algılayabilir. Bu standart döndürmelerin ötesinde eğrilmiş 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 üç anahtar özellik döndürür: PageNumber (sıfır bazlı indeks), RotationAngle (IronOCR'un Rotate yöntemi ile kullanmak için derece cinsinden döndürme) ve HighConfidence (kenar durumlarını yönetmek için güven seviyesi).

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

Döndürme algılamanın belirsiz olabileceği belirsiz veya düşük kaliteli belgelerle uğraşırken HighConfidence özelliğini kullanın. IronOCR'de genellikle düşük güven puanları döndüren ve ek doğrulama veya görüntü kalite düzeltme filtreleri gerektiren seyrek metin, alışılmadık düzenler veya zayıf tarama kalitesine sahip belgeler için.

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

IronOCR'un DetectPageOrientation işlevi, metin yoğun belgelerle en iyi şekilde çalışır. Metin içeriği az olan veya karmaşık düzenlere sahip belgeler için algılamadan önce en iyi sonuçlar için görüntü kalite düzeltme filtreleri uygulamayı düşünün.

IronOCR mevcut uygulamalara entegre edilebilir mi?

IronOCR, C# kullanarak mevcut uygulamalara kolayca entegre edecek şekilde tasarlanmıştır, bu sayede geliştiriciler, yazılımlarına minimal çabayla OCR işlevselliği ekleyebilir.

IronOCR'yi belge yönetimi için kullanmanın faydaları nelerdir?

IronOCR'yi belge yönetimi için kullanmak, taranmış belgeleri aranabilir ve düzenlenebilir metne dönüştürerek iş akışını hızlandırır, manuel veri giriş ihtiyacını azaltır ve belge erişilebilirliğini artırır.

IronOCR veri doğruluğunu nasıl artırabilir?

IronOCR, gelişmiş tanıma algoritmaları ve görüntü düzeltme özellikleriyle veri doğruluğunu artırır, böylece metin çıkarım sürecinin hem güvenilir hem de kesin olmasını sağlar.

IronOCR için ücretsiz bir deneme mevcut mu?

Evet, Iron Software, IronOCR'nin özelliklerini ve yeteneklerini, bir satın alma kararı vermeden önce test edebilmek için ücretsiz bir deneme sunar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Gözden Geçiren
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluğu Ekibi
Jeff, .NET ve Visual Studio ekipleri için bir Baş Program Yöneticisidir. .NET Conf sanal konferans serisinin baş yapımcısıdır ve haftada iki kez canlı yayınlanan 'Fritz and Friends' adlı bir akış programı sunar; burada izleyicilerle birlikte teknoloji konuşur ve kod yazar. Jeff, en büyük Microsoft geliştirici etkinlikleri için atölyeler, sunumlar ve içerik planları yazar, Microsoft Build, Microsoft Ignite, .NET Conf ve Microsoft MVP Summit gibi etkinliklerde yer alır.
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.