IronOCR ile C#'ta Sayfa Döndürme Tespit Etme
IronOCR'un DetectPageOrientation metodu, PDF belgelerindeki ve görüntülerindeki sayfa dönme açısını (0°, 90°, 180°, 270°) otomatik olarak tanımlar. Her sayfa için programatik açı düzeltme sağlamak amacıyla doğru metin ayıklama için güven skoru ile birlikte RotationAngle özelliğini döndürür.
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önüş Açısını Belirlemek içinDetectPageOrientation Kullan
Bu örnek, IronOCR'un DetectPageOrientation kullanarak bir PDF üzerinde RotationAngle özelliğine erişmeyi gösterir. Hızlı sayfa döndürme algılama ve düzeltme işlemi için minimal kod ile sağlar.
-
1Install IronOCR with NuGet Package Manager
-
2Bu 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);C# -
3Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
Asgari İş Akışı (5 adım)
- Sayfa dönüşünü algılamak için bir C# kütüphanesi indirin
- PDF belgesini ve okumak için görselleri içe aktarın
- Tüm sayfalar için döndürmeyi tespit etmek için
DetectPageOrientationyöntemini kullanın - RotationAngle özelliğine erişerek sayfa dönüşünü düzeltin
- HighConfidence özelliğine erişerek sınır durumlarını yönetin
Belgelerimde Sayfa Döndürmeyi Nasıl Tespit Edebilirim?
Bir belge yüklendikten sonra, her sayfanın dönüşünü tanımlamak için DetectPageOrientation metodunu kullanın. Bu yöntem 0, 90, 180 ve 270 dereceyi destekler. Bu standart dönüşlerin ötesinde eğik görüntüler için, IronOCR'un görüntü düzeltme filtrelerinden gelen Deskew metodunu 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.
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 resultTespit Sonuçları Ne Anlama Geliyor?
PageNumber: Sayfanın sıfır bazlı indeksi.RotationAngle: Derece cinsinden dönüş açısı. Yönlendirme düzeltmek içinRotatemetodu ile kullanın.HighConfidence: Uç durumlarla başa çıkmak için yönlendirme sonucundaki güven seviyesi.
Yüksek Güven Değerlerini Ne Zaman Kullanmalıyım?
HighConfidence özelliği, dönme algılamasının belirsiz olabileceği belirsiz veya düşük kaliteli belgeler için kritik öneme sahiptir. 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önme açısı belirlendikten sonra, OCR'den önce yönlendirmeyi düzeltmek için Rotate metodunu OcrInput nesnesi üzerinde 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 Then
input.Rotate(360 - result.RotationAngle) ' Rotate back to 0°
End IfEk ö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 metodu, algılama detayını kontrol etmek için isteğe bağlı bir parametreyi kabul eder. OrientationDetectionMode enumları sağlayarak, gereksinimlerinize göre algılama hızını ve doğruluğunu ayarlayabilirsiniz.
İşte nasıl uygulayacağınız:
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 UsingHangi Tespit Modunu Seçmeliyim?
OrientationDetectionMode için dört hız seçeneği mevcuttur:
IronOcr.Extensions.AdvancedScan package. 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.
DetectPageOrientationiç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:
- 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.
- 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.
- 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.
- 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önlü belgeler için her sayfayı DetectPageOrientation ile ayrı ayrı işleyin, ardından OCR öncesi sayfa sayfa dönme düzeltmelerini 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 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
NextKarmaşı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.
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, 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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.