C# için OCR Görüntü Yönü Nasıl Düzeltilir | IronOCR

C# ile OCR'de Resim Yönlendirmesini Düzeltme

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

IronOCR, görüntü yönlendirme sorunlarını döndürme, eğrilik giderme ve ölçeklendirme yöntemleri ile düzeltir. Bu dönüşümleri birleştirerek, doğru OCR metin çıkarımı için .NET uygulamalarınızda eğik taramaları, başaşağı belgeleri ve yanlış boyutlandırılmış görüntüleri düzeltin.

Hızlı Başlangıç: Tek Satırda Döndürme-Eğme-Ölçek

IronOCR'nin OcrInput yöntemlerini zincirleyerek tek bir çağrıda görüntünüzü döndürün, düzeltin ve ölçeklendirin — hazır şablonlara gerek kalmadan görüntüleri doğru OCR için hazırlayın.

  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 result = new IronOcr.OcrInput().LoadImage("skewed.png").Rotate(90).Deskew(45).Scale(150).Let(input => new IronOcr.IronTesseract().Read(input));
  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


IronOCR ile Görselleri Nasıl Döndürebilirim?

Rotasyon, metnin dik ve doğru hizalanmasını sağlamak için görüntü yönünü belirli bir açıyla değiştirir. Bu, tarayıcılara yanlış yerleştirilmiş taranmış belgeleri veya garip açılardan çekilmiş fotoğrafları düzeltir.

Rotate yöntemine bir derece değeri aktarın. Pozitif değerler saat yönünde döndürür; negatif değerler saat yönünün tersine döndürür. Dönme, görüntünün merkez noktası etrafında gerçekleşir, orijinal boyutları koruyarak içeriğin yönünü ayarlar.

Görüntü Döndürmeyi Ne Zaman Kullanmalıyım?

Görüntü döndürme, yanlış yönlendirilmiş şekilde taranan veya fotoğraflanan belgeleri düzeltir. Yaygın senaryolar şunları içerir:

  • Belge taramaları ters veya yan olarak yapıldı
  • Yönlendirme değişikliği gerektiren mobil fotoğraflar

  • Tutarsız sayfa yönlerine sahip çok sayfalı belgeler

  • Farklı tarama standartlarına sahip tarihi arşivler
  • Pasaport tarama ile yönelimlerin değişiklik gösterdiği durumlar
  • Farklı kamera açılarından plaka tanıma

Otomatik dönüş algılama için, metin analizi yoluyla doğru yönelimi belirleyen IronOCR'nin DetectPageOrientation yöntemini kullanın.

Hangi Derece Değerleri En İyi Çalışır?

Yaygın döndürme değerleri, standart yönlendirme sorunları için 90 derecenin (90, 180, 270) katlarıdır. IronOCR, ince ayarlar için herhangi bir derece değerini destekler:

  • 90/-270 derece: Yataydan dikeye dönüştürme
  • 180 degrees: Ters çevrilmiş belgeler
  • 270/-90 derece: Portreyi manzaraya dönüştürme
  • Küçük açılar (1-10 derece): Küçük ayarlamalar, ancak eğiklik giderme genellikle hafif eğiklikler için daha iyi çalışır

Eski ekipmanlardan taratılmış belgeler için, döndürmeyi diğer ön işleme adımlarıyla birleştirin.

Dönme, OCR Doğruluğunu Nasıl Etkiler?

Doğru döndürme, OCR doğruluğu için çok önemlidir. IronOCR'nin Tesseract 5 motoru, soldan sağa, yukarıdan aşağıya metin akışını bekler. Hatalı hizalanmış metin neden olur:

  • Karakter yanlış tanıma
  • Yanlış kelime sınırları
  • Paragraf algılama başarısız oldu
  • Kötü çok dilli belge performansı
  • Sonuçlarda güven skoru düşürüldü
:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");

// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);

// Export the modified image
imageInput.SaveAsImages("rotate");
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("paragraph_skewed.png")

' Rotate the image 180 degrees clockwise
imageInput.Rotate(180)

' Export the modified image
imageInput.SaveAsImages("rotate")
$vbLabelText   $csharpLabel

SaveAsImages yöntemini kullanarak değiştirilmiş görüntüleri dışa aktarın. Aşağıda, döndürme işlemi öncesi ve sonrası görüntü gösterilmektedir.

Original skewed text document before rotation correction
Document with 180-degree rotated text showing upside-down content that requires IronOCR rotation correction

Eğik Görüntüler Nasıl Düzleştirilir?

Maskeleme, eğik veya eğilmiş görüntüleri düzleştirir, doğru yatay metin hizalamasını sağlamak için eğimini düzeltir. Bu, tarayıcılara yamuk yerleştirilmiş dokümanları veya hafif açılarla çekilmiş fotoğrafları düzeltir.

Deskew yöntemini kullanarak eğriliği düzeltin. Maksimum sapma açısını düzeltmek için bir tam sayı belirtin. Yüksek değerler daha fazla düzeltme sağlar ancak işlemi yavaşlatır ve sayfaların baş aşağı olması gibi hatalara yol açabilir. Varsayılan 15 derecelik maksimum değer, çoğu senaryoyu etkili bir şekilde işler.

Düzeltilme İçin Hangi Açı Değerlerini Kullanmalıyım?

Optimal kayma düzeltme açıları, belge kalitesi ve gereksinimlerine bağlıdır:

  • Varsayılan (parametre yok): Çoğu belge için otomatik algılama
  • 5-15 derece: Hafif eğik taramalar, doğruluk ile hızı dengelemek 15-30 derece: Şiddetli şekilde eğilmiş belgeler; 20 derecenin üzerindeki açılar için döndürmeyi düşünün
  • 30+ derece: Aşırı düzeltebilir; görüntü filtrelerini kullanın

Aşırı eğik belgeler için deskewing ile birlikte görüntü iyileştirme filtrelerini kullanın. Filtre Sihirbazı, optimal ön işleme adımlarını belirlemenize yardımcı olabilir.

Düzeltilmiş Kenarların En Etkili Olduğu Durumlar Nelerdir?

Düzeltme en iyi şunlarda çalışır:

Daha az etkili olduğu durumlar:

  • Düzensiz taban çizgilerine sahip el yazısıyla yazılmış metin
  • Birden çok metin yönüne sahip görüntüler
  • Ağır grafikli veya tabelalı belgeler
  • Ekran Görüntüleri zaten düzgün hizalanmış

Aşırı Düzeltme Sorunlarından Nasıl Kaçınabilirim?

Deskew sorunlarını önlemek için:

  1. Muhafazakar açı limitleriyle başlayarak (10-15 derece)
  2. Düzeltmeleri doğrulamak için OcrResult güven skorlarını kullanmak
  3. Bileşik sorunlar için döndürmeden sonra eğrilik düzeltme uygulamak
  4. Toplu işlemden önce örnek belgelerin test edilmesi
  5. Büyük partiler için ilerleme takibi kullanma
  6. Uzun süreli işlemler için abort tokenları uygulama
:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");

// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);

// Export the modified image
imageInput.SaveAsImages("rotate");
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("paragraph_skewed.png")

' Rotate the image 180 degrees clockwise
imageInput.Rotate(180)

' Export the modified image
imageInput.SaveAsImages("rotate")
$vbLabelText   $csharpLabel
Original document with noticeable tilt requiring deskew correction
Document after deskew correction showing properly aligned horizontal text

Daha İyi OCR İçin Görüntüleri Nasıl Ölçeklendiririm?

Ölçeklendirme, metin tanıma tutarlılığı için boyutları standartlaştırarak görselleri yeniden boyutlandırır. Uygun ölçeklendirme, metnin ne çok küçük bir şekilde algılanmasını ne de çok büyük bir şekilde verimli bir şekilde işlenmesini sağlar.

Yüzde değeri kullanarak Scale yöntemiyle ölçeklendirme uygulayın (100% hiçbir etki olmadığı anlamına gelir). İkinci parametre, ScaleCropArea, kırpma alanlarının orantılı olarak ölçeklenip ölçeklenmeyeceğini belirler (önerilen ayar 'true'dur). Ölçeklendirme sırasında orijinal DPI meta verilerini korumak için ScaleCropArea kullanın. Ölçekleme, metin bozulmasını önlemek için en boy oranını korur.

En İyi Ölçek Yüzdeleri Nelerdir?

Optimum ölçekleme, kaynak çözünürlüğüne ve OCR gereksinimlerine bağlıdır:

  • 50-80%: Daha hızlı işlem için yüksek çözünürlüklü taramalar (600+ DPI) 100%: Ölçekleme yok, orijinal boyutlar
  • 120-150%: Karakter tanımasını artırmak için düşük çözünürlüklü görüntüler
  • %200+: Çok küçük metin, ancak DPI ayarları daha iyi çalışabilir

En iyi sonuçlar için hedef metin yüksekliğini 20-30 piksel arasında tutun. DPI çözünürlüğünün iyileştirilmesi hakkında ayrıntılı rehber için Tesseract için görüntü DPI'sini optimize etme bölümüne bakın.

Ölçeklendirme OCR Performansını Nasıl Etkiler?

Ölçeklendirme, doğruluk ve hızı etkiler:

  • Ölçek Küçültme (100%'ün altında): Daha hızlı işlem, ancak ince ayrıntılar kaybolabilir
  • Yükseltme (yüzde 100'ün üzerinde): Küçük metinler için daha iyi doğruluk ancak daha yavaş işlem
  • Bellek kullanımı: Görüntü boyutları ile karesel olarak ölçeklenir
  • İşleme süresi: Daha büyük boyutlarla artar

Performans optimizasyonu için hızlı OCR yapılandırması ve hız için çoklu iş parçacığı bakın.

ScaleCropArea'yi Ne Zaman Kullanmalıyım?

Ne zaman ScaleCropArea kullanmalısınız:

Orijinal kırpma koordinatlarına ihtiyacınız yoksa true olarak ayarlayın.

:path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("paragraph_skewed.png");

// Rotate the image 180 degrees clockwise
imageInput.Rotate(180);

// Export the modified image
imageInput.SaveAsImages("rotate");
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("paragraph_skewed.png")

' Rotate the image 180 degrees clockwise
imageInput.Rotate(180)

' Export the modified image
imageInput.SaveAsImages("rotate")
$vbLabelText   $csharpLabel

Farklı Ölçek Değerleri Nasıl Karşılaştırılır?

Aşağıdaki karşılaştırma, ölçeklendirme işleminin boyutlar ve metin netliği üzerindeki etkisini göstermektedir. Orta dereceli ölçeklendirme, okunabilirliği korur ve işlem gereksinimlerini ayarlar:

Boyut farklarını gösteren %50, %100 ve %150 ölçekli metin belgesi karşılaştırması
Farklı ölçeklerde rendering edilen metinlerin 3D perspektifinde OCR kalitesinin korunduğunu gösteren yan yana karşılaştırma

Kombine Düzeltmeler İçin En İyi Uygulamalar Nelerdir?

Optimal sonuçlar için düzeltmeleri bu sırada uygulayın:

  1. Büyük yönlendirme sorunları için ilk olarak Döndürme
  2. Hizalamayı ince ayarlamak için Eğiklik Giderme
  3. OCR işlemlerini optimize etmek için Ölçeklendirme

Bu sıralama, önceki düzeltmelerin üzerine binerken hataların birikmesini önler. Karmaşık işlem ihtiyaçları için, IronOCR'nin kapsamlı resim filtreleri ve resim kalitesi düzeltme araçlarını keşfedin.

Tüm Yönlendirme Düzeltmelerini Nasıl Kombine Ederim?

Kapsamlı resim hazırlığı için birden fazla düzeltmeyi zincirleyin:

/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */
using IronOcr;

// Create OCR engine with optimized configuration
IronTesseract ocrTesseract = new IronTesseract();

// Load and process image with all corrections
using var imageInput = new OcrImageInput("skewed_document.png");

// Apply corrections in optimal sequence
imageInput
    .Rotate(90)           // Fix major orientation
    .Deskew(15)          // Correct minor tilts
    .Scale(150, true);   // Enhance for OCR

// Perform OCR on corrected image
OcrResult result = ocrTesseract.Read(imageInput);

// Access extracted text
string extractedText = result.Text;
/* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */
using IronOcr;

// Create OCR engine with optimized configuration
IronTesseract ocrTesseract = new IronTesseract();

// Load and process image with all corrections
using var imageInput = new OcrImageInput("skewed_document.png");

// Apply corrections in optimal sequence
imageInput
    .Rotate(90)           // Fix major orientation
    .Deskew(15)          // Correct minor tilts
    .Scale(150, true);   // Enhance for OCR

// Perform OCR on corrected image
OcrResult result = ocrTesseract.Read(imageInput);

// Access extracted text
string extractedText = result.Text;
Imports IronOcr

' Create OCR engine with optimized configuration
Dim ocrTesseract As New IronTesseract()

' Load and process image with all corrections
Using imageInput As New OcrImageInput("skewed_document.png")

    ' Apply corrections in optimal sequence
    imageInput _
        .Rotate(90) _          ' Fix major orientation
        .Deskew(15) _          ' Correct minor tilts
        .Scale(150, True)      ' Enhance for OCR

    ' Perform OCR on corrected image
    Dim result As OcrResult = ocrTesseract.Read(imageInput)

    ' Access extracted text
    Dim extractedText As String = result.Text
End Using
$vbLabelText   $csharpLabel

Hangi Ek Ön İşleme İşlemleri Sonuçları İyileştirir?

Yönlendirme düzeltmenin ötesinde, şu iyileştirmeleri düşünün:

Toplu işlem için, birden fazla belgeyi verimli bir şekilde işlemek için asenkron destek uygulayın. Büyük işlemler için zaman aşımı ile işlemeyi izleyin.

Düzeltilmiş Resimleri Nasıl Dışa Aktarırım?

İşlenmiş resimleri doğrulama veya ileri kullanım için dışa aktarın:

Karmaşık iş akışlarını uygulamadan önce basit tek satır OCR ile düzeltmeleri test edin.

Sıkça Sorulan Sorular

OCR işleminden önce eğik veya eğimli görüntüleri nasıl düzeltirim?

IronOCR, OcrInput sınıfı aracılığıyla güçlü görüntü yön düzeltme becerileri sağlar. Eğik taramalar, baş aşağı belgeler ve yanlış boyutlandırılmış görüntüleri düzeltmek için Rotate(), Deskew() ve Scale() gibi yöntemleri zincirleyebilirsiniz. Örneğin, metin çıkarma işleminden önce çoklu düzeltmeleri tek satırda uygulamak için input.Rotate(90).Deskew(45).Scale(150) kullanın.

Farklı belge yönergeleri için hangi döndürme açılarını kullanmalıyım?

IronOCR herhangi bir döndürme açısını destekler, ancak yaygın değerler şunları içerir: manzara-makas geometriye dönüşüm için 90 derece, baş aşağı belgeler için 180 derece ve portre-manzara dönüşümü için 270 derece. Hafif eğiklikler için (1-10 derece arası) daha iyi sonuçlar almak için IronOCR'nun Deskew() yöntemini kullanmayı düşünün.

Belgelerimin doğru yönünü otomatik olarak tespit edebilir miyim?

Evet, IronOCR, metin analizi yoluyla doğru yönü otomatik olarak belirleyen bir DetectPageOrientation yöntemi içerir. Bu özellik, çeşitli kaynaklardan gelen tarihsel arşivler veya çok sayfalı belgeler gibi tutarsız yönlere sahip belgeleri işlerken özellikle yararlıdır.

Görüntü düzeltme için eğriltme yerine döndürmeyi ne zaman kullanmalıyım?

Belge tam olarak yan veya baş aşağı olduğunda büyük yönlendirme sorunları (90, 180, 270 derece) için IronOCR'nun Rotate() yöntemini kullanın. Eğri taranmış belgelerde tipik olarak bulunan küçük eğiklikler ve eğrilikler için Deskew() yöntemini kullanın. Kötü taranmış görüntülerin kapsamlı düzeltmesi için her iki yöntemi de bir araya getirebilirsiniz.

Daha iyi OCR doğruluğu için görüntüleri nasıl ölçeklendiririm?

IronOCR'nun Scale() yöntemi, görseli yüzdelik olarak yeniden boyutlandırmanıza olanak tanır. Örneğin, Scale(150) görüntü boyutunu %50 artırır ve bu da düşük çözünürlüklü taramalarda OCR doğruluğunu artırabilir. Bu, döndürme ve eğriltme ile birleştirildiğinde özellikle yararlıdır.

IronOCR birden fazla dili destekliyor mu?

IronOCR, birden çok dili destekler ve farklı dillerde metin tanımaya ihtiyaç duyan global uygulamalar için çok yönlü bir araçtır.

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.