C# Guide: Using IronOCR Image Filters for Better OCR
IronOCR, ön işleme gerektirebilecek görüntüleri okumak için ihtiyaç duyduğunuz araçları sağlar. Görüntülerinizi işlenebilir hale getirmek için manipüle edebilecek geniş bir filtre yelpazesinden seçim yapabilirsiniz.
Hızlı Başlangıç: OCR Görüntülerini Temizlemek İçin Filtreleri Uygula
Sadece bir basit çağrı zincirinde, OCR'dan önce tarama netliğini artırmak için DeNoise, Binarize ve Deskew filtrelerini uygulayabilirsiniz. Bu örnek, IronOCR'un yerleşik filtrelerini kullanarak görüntüleri nasıl kolayca iyileştirebileceğinizi ve hemen başlayabileceğinizi gösterir.
-
IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin
-
Bu kod parçacığını kopyalayın ve çalıştırın.
using var input = new IronOcr.OcrInput("scan.jpg"); input.DeNoise(true).Binarize().Deskew(45); var result = new IronOcr.IronTesseract().Read(input); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
OCR Görüntü Filtreleri Listesi
Aşağıdaki Görüntü filtreleri performansı gerçekten artırabilir:
Filters to change the Image OrientationRotate- Görüntüleri saat yönünde belirli bir dereceye kadar döndürür. Saat yönünün tersine döndürmek için negatif sayılar kullanın.Deskew- Bir resmi doğru şekilde yukarı çevirir ve dik konuma getirir. Bu, özellikle OCR için çok faydalıdır çünkü Tesseract'ın eğik taramalara toleransı 5 derece kadar düşük olabilir.Scale- OCR giriş sayfalarını orantılı olarak ölçeklendirir.
Filters to manipulate Image ColorsBinarize- Bu görüntü filtresi, her pikseli siyah veya beyaza çevirir, ara ton yoktur. Bu, çok düşük metin-arka plan kontrastı durumlarında OCR performansını artırabilir.ToGrayScale- Bu görüntü filtresi, her pikseli gri tonlara çevirir. OCR doğruluğunu artırma olasılığı düşük ama hızı artırabilir.Invert- Her rengi tersine çevirir. Örneğin, beyaz siyah olur ve tam tersi.ReplaceColor- Bir görüntüde bir rengi belirli bir eşik dahilinde başka bir renkle değiştirir.
Filters to improve Contrast in an ImageContrast- Kontrastı otomatik olarak artırır. Bu filtre genellikle düşük kontrastlı taramalarda OCR hızını ve doğruluğunu artırır.Dilate- Gelişmiş Morfoloji. Dilate görüntüdeki nesnelerin sınırlarına pikseller ekler. Erode'un tersi.Erode- Gelişmiş Morfoloji. Erozyon nesne sınırlarından pikselleri kaldırır. Dilate'un tersi.
Filters to reduce Image NoiseSharpen- Bulanık olan OCR belgelerini keskinleştirir ve alfa kanallarını beyaza düzeltir.DeNoise- Dijital gürültüyü giderir. Bu filtrenin yalnızca gürültünün beklenildiği senaryolarda kullanılması önerilir.EnhanceResolution- Düşük kaliteli görüntülerin çözünürlüğünü artırır. Bu filtre genellikle gerekli değildir çünküOcrInput.MinimumDPIveOcrInput.TargetDPIdüşük çözünürlüklü girişleri otomatik olarak yakalar ve çözer.
Filtre Örneği ve Kullanımı
Aşağıdaki örnekte kodunuzda filtreleri nasıl uygulayabileceğinizi gösteriyoruz.
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-1.cs
using IronOcr;
using System;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("my_image.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("my_image.png")
input.Deskew()
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Hata Ayıklama Filtresi / Filtre ne yapıyor?
Programınızda görüntü veya barkod okuma ile ilgili zorluk yaşıyorsanız, filtrelenmiş sonucun bir görüntüsünü kaydetmenin bir yolu vardır. Bu şekilde, her filtrenin ne yaptığını ve görüntünüzü nasıl manipüle ettiğini hata ayıklayarak görebilirsiniz.
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-2.cs
using IronOcr;
using System;
var file = "skewed_image.tiff";
var ocr = new IronTesseract();
using var input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(file, pageindices);
// Here we apply the filter: Deskew
input.Deskew();
// Save the input with filter(s) applied
input.SaveAsImages("my_deskewed");
// We read, then print the text to the console
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private file = "skewed_image.tiff"
Private ocr = New IronTesseract()
Private input = New OcrInput()
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames(file, pageindices)
' Here we apply the filter: Deskew
input.Deskew()
' Save the input with filter(s) applied
input.SaveAsImages("my_deskewed")
' We read, then print the text to the console
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Filtre Kullanım Durumları
Döndür
Filtre Açıklaması
Döndür, bir görüntüye elle belirli bir dönüş ayarlamak için kullanılan bir filtredir. IronOCR, Deskew() çalıştırma işlevselliğine sahiptir, ancak bunun için tolerans derecesi oldukça sınırlıdır ve yaklaşık 15 derece kadar neredeyse mükemmel düz olan görüntüler için en iyi biçimde kullanılır. 90 derece yanlış veya ters çevrilmiş giriş görüntüleri için, Rotate() çağırmalıyız.
Kullanım Durumu Kod Örneği
Ters çevrilmiş bir görüntüyü düzeltmek için Rotate() çağrı örneği:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-3.cs
using IronOcr;
using System;
var image = "screenshot.png";
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Rotate 180 degrees because image is upside-down
input.Rotate(180);
// Read image into variable: result
var result = ocr.Read(input);
// Example print to console
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private image = "screenshot.png"
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Rotate 180 degrees because image is upside-down
input.Rotate(180)
' Read image into variable: result
Dim result = ocr.Read(input)
' Example print to console
Console.WriteLine(result.Text)
Önce Input.Rotate(180) |
Sonra Input.Rotate(180) |
|---|---|
![]() |
![]() |
Kayma
Filtre Açıklaması
Bir görüntüyü belirli tolerans dereceleri dahilinde düzleştirmeye çalışmak için Hough Dönüşümü kullanır. Bu, tam olarak düz olmayan belgeler önemlidir çünkü eğik bir belge yanlış okunabilir.
Kullanım Durumu Kod Örneği
Eğilmiş bir görüntüyü düzeltmek için Deskew() çağrı örneği:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-4.cs
using IronOcr;
using System;
var image = @"paragraph_skewed.png";
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Apply deskew with 15 degree snap
bool didDeskew = input.Deskew(15);
if (didDeskew)
{
// Read image into variable: result
var result = ocr.Read(input);
Console.WriteLine(result.Text);
}
else
{
Console.WriteLine("Deskew not applied because Image Orientation could not be determined.");
}
Imports IronOcr
Imports System
Private image = "paragraph_skewed.png"
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Apply deskew with 15 degree snap
Dim didDeskew As Boolean = input.Deskew(15)
If didDeskew Then
' Read image into variable: result
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Else
Console.WriteLine("Deskew not applied because Image Orientation could not be determined.")
End If
Ölçek
Filtre Açıklaması
Ölçek, mevcut pikselleri kullanarak bir görüntüyü yeniden boyutlandırmaya yardımcı olan faydalı bir görüntü manipülasyon filtresidir. Bu, bir barkod tarandığında kullanılır çünkü görüntü sadece birkaç piksel genişliğinde olup, her çubuk bir piksel genişliğindedir ya da yazı metni çok küçük olup antialiasing yoktur.
1000px x 1000px barkod boyutları için bir tatlı nokta vardır; bu, barkodunuz bulunmuyorsa dikkate alınmalıdır.Kullanım Durumu Kod Örneği
Barkodlardaki çubuklar arasındaki boşlukları tarayıcı için genişletmek için Scale() çağrı örneği:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-5.cs
using IronOcr;
using System;
var image = @"small_barcode.png";
var ocr = new IronTesseract();
// Optional: This example uses a barcode
ocr.Configuration.ReadBarCodes = true;
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Apply scale
input.Scale(400); // 400% is 4 times larger
// Read image into variable: result
var result = ocr.Read(input);
// Example print to console
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private image = "small_barcode.png"
Private ocr = New IronTesseract()
' Optional: This example uses a barcode
ocr.Configuration.ReadBarCodes = True
Dim input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Apply scale
input.Scale(400) ' 400% is 4 times larger
' Read image into variable: result
Dim result = ocr.Read(input)
' Example print to console
Console.WriteLine(result.Text)
Binari
Filtre Açıklaması
Binari filtresi, bir adaptif algoritmaya bağlı olarak bir görüntüdeki tüm pikselleri ya siyah ya da beyaz olarak sınıflandırır. Bu, tüm renkleri kaldırır ve arka planı düz beyaz hale getirir, metin olarak tanınan her şeyin tamamen siyah renkte olduğu kolay okuma sağlar.
Kullanım Durumu Kod Örneği
Renkli metni hizalamak, arka plan renklerini ve gürültüyü kaldırmak için Binarize() çağrı örneği:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-6.cs
using IronOcr;
using System;
var image = @"no-binarize.jpg";
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Apply Binarize
input.Binarize();
// Read image into variable: result
var result = ocr.Read(input);
// Example print to console
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private image = "no-binarize.jpg"
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Apply Binarize
input.Binarize()
' Read image into variable: result
Dim result = ocr.Read(input)
' Example print to console
Console.WriteLine(result.Text)
Önce Binarize() |
Sonra Binarize() |
|---|---|
![]() |
![]() |
Çevir
Filtre Açıklaması
IronOCR en iyi, görüntü black text on a white background olduğunda okur. Invert filtresi, bir görüntüdeki tüm renkleri tersine çevirerek bunu başarmak için kullanılır.
Kullanım Durumu Kod Örneği
Siyah üzerine beyazı beyaz üzerine siyah yapmak için Invert() çağrı örneği:
:path=/static-assets/ocr/content-code-examples/tutorials/c-sharp-ocr-image-filters-7.cs
using IronOcr;
using System;
var image = @"before-invert.png";
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage(image);
// Apply Invert
input.Invert(true);
// Read image into variable: result
var result = ocr.Read(input);
// Example print to console
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
Private image = "before-invert.png"
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage(image)
' Apply Invert
input.Invert(True)
' Read image into variable: result
Dim result = ocr.Read(input)
' Example print to console
Console.WriteLine(result.Text)
Before |
After |
|---|---|
![]() |
![]() |
Sıkça Sorulan Sorular
Görüntü filtreleri C# dilinde OCR doğruluğunu nasıl artırır?
IronOCR'daki görüntü filtreleri, OCR doğruluğunu artırarak, görüntü kalitesini yükseltmek için ön işlem yapar. Binarize ve Kontrast gibi filtreler, renkler ve kontrastı ayarlayarak okunabilirliği artırır, Döndür ve Eğiklik Düzeltme ise görüntü yönünü düzeltir.
Görüntü yönlendirme sorunlarını düzeltmek için hangi filtreler mevcuttur?
IronOCR, görüntü yönlendirme sorunlarını düzeltmek için Döndür ve Eğiklik Düzeltme filtreleri sağlar. Döndür, görüntü açılarını manuel olarak ayarlamanıza olanak tanırken, Eğiklik Düzeltme hafifçe eğik olan görüntüleri otomatik olarak düzeltir.
Binarize filtresi, görüntü ön işlemeyi nasıl etkiler?
IronOCR'daki Binarize filtresi, görüntü piksellerini siyah-beyaz renklere dönüştürerek arka plan renklerini kaldırır ve metin görünürlüğünü artırır, özellikle düşük kontrast koşullarında OCR doğruluğunu iyileştirir.
Gürültü azaltma filtrelerini ne zaman kullanmak uygundur?
Keskinleştir ve Gürültü Azalt gibi gürültü azaltma filtreleri, görüntülerde dijital gürültü olduğunda kullanılmalıdır. Bu filtreler görüntüyü temizleyerek metni daha net hale getirir ve IronOCR'da daha iyi OCR sonuçları elde edilmesini sağlar.
Görüntü çözünürlüğünü artırmak OCR performansını etkileyebilir mi?
Evet, Çözünürlüğü Artır filtresini kullanmak, düşük kaliteli görüntülerin çözünürlüğünü artırarak OCR performansını iyileştirebilir. IronOCR'un varsayılan MinimumDPI ve TargetDPI ayarları genellikle yeterli olsa da, gerekirse ilave çözünürlük artırma sağlayabilir.
Renk manipülasyon filtreleri OCR'da ne rol oynar?
IronOCR'daki İnvert, ToGrayScale ve Binarize gibi renk manipülasyon filtreleri, metin okunabilirliğini artırmak için görüntü renklerini ayarlar. İnvert, renk şemalarını değiştirir, ToGrayScale, görüntüleri gri tonlamalıya dönüştürür ve Binarize, görüntüleri siyah-beyaz hale getirir.
Kontrast filtresi ve Keskinleştirme filtresi arasındaki fark nedir?
IronOCR'daki Kontrast filtresi, açık ve koyu alanlar arasındaki farkı artırarak metnin netliğini artırırken, Keskinleştirme filtresi, metni daha belirgin hale getirmek için kenarları güçlendirir ve her ikisi de daha iyi bir OCR tanımını destekler.
IronOCR'da filtrelenmiş görüntüleri nasıl kaydeder ve hata ayıklarsınız?
Filtre uygulandıktan sonra SaveAsImages fonksiyonunu kullanarak IronOCR'da filtrelenmiş görüntüleri kaydetmek ve hatalarını gidermek mümkündür. Bu, filtre etkilerini görselleştirmenize ve ön işleme adımlarının görüntü kalitesini OCR için geliştirdiğinden emin olmanıza yardımcı olur.
IronOCR'da mevcut gelişmiş morfoloji filtreleri nelerdir?
IronOCR, Büyüt ve Aşındır gibi gelişmiş morfoloji filtreleri sunar. Büyüt, özellikleri artırmak için nesne sınırlarına piksel eklerken, Aşındır bunları kaldırır ve her ikisi de OCR doğruluğunu artırmak için görüntü ayrıntılarını netleştirmek amacıyla kullanılır.







