Altbilgi içeriğine atla
OCR ARAçLARı

Tesseract Kullanarak Görüntülerden Nasıl Metin Alınır

IronOCR ve Tesseract gibi kütüphanelerin kullanılması, geliştiricilere görüntülerden ve taranmış belgelerden metinsel bilgi çıkartmak için gelişmiş algoritmalar ve makine öğrenimi tekniklerine erişim sağlar. Bu eğitimde okuyuculara, görüntülerden metin çıkarmak için Tesseract kütüphanesini nasıl kullanacakları gösterilecek ve ardından IronOCR'nin benzersiz yaklaşımı tanıtılacaktır.

1. Tesseract ile OCR

1.1. Tesseract'ı Kurma

NuGet Package Manager Console'u kullanarak, aşağıdaki komutu girin:

Install-Package Tesseract

Ya da NuGet Package Manager üzerinden paketi indirin.

OCR Metin Tanıma Nasıl Alınır, Şekil 1: NuGet Paket Yöneticisinde Tesseract paketini yükleyin NuGet Paket Yöneticisinde Tesseract paketini yükleyin

NuGet Paketini yükledikten sonra, dil dosyalarını projenizin klasörüne manuel olarak kurmanız ve kaydetmeniz gerekir. Bu, bu özel kütüphanenin bir eksikliği olarak düşünülebilir.

Dil dosyalarını indirmek için aşağıdaki web sitesini ziyaret edin. İndirdikten sonra, dosyaları açın ve "tessdata" klasörünü projenizin debug klasörüne ekleyin.

1.2. Tesseract'ı Kullanma (Hızlı Başlangıç)

Verilen bir görüntüdeki OCR, aşağıdaki kaynak kodu kullanılarak gerçekleştirilebilir:

using Tesseract;

class Program
{
    static void Main()
    {
        // Initialize Tesseract engine with English language data
        using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);

        // Load the image to be processed
        using var img = Pix.LoadFromFile("Demo.png");

        // Process the image to extract text
        using var res = ocrEngine.Process(img);

        // Output the recognized text
        Console.WriteLine(res.GetText());
        Console.ReadKey();
    }
}
using Tesseract;

class Program
{
    static void Main()
    {
        // Initialize Tesseract engine with English language data
        using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);

        // Load the image to be processed
        using var img = Pix.LoadFromFile("Demo.png");

        // Process the image to extract text
        using var res = ocrEngine.Process(img);

        // Output the recognized text
        Console.WriteLine(res.GetText());
        Console.ReadKey();
    }
}
Imports Tesseract

Friend Class Program
	Shared Sub Main()
		' Initialize Tesseract engine with English language data
		Dim ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)

		' Load the image to be processed
		Dim img = Pix.LoadFromFile("Demo.png")

		' Process the image to extract text
		Dim res = ocrEngine.Process(img)

		' Output the recognized text
		Console.WriteLine(res.GetText())
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel
  • İlk olarak, dil verilerini motora yükleyerek bir TesseractEngine nesnesi oluşturulmalıdır.
  • Ardından, istenen resim dosyası Pix.LoadFromFile yardımıyla yüklenir.
  • Metni çıkarmak için Process yöntemi kullanılarak resim TesseractEngine içine geçirilir.
  • Tanınan metin, GetText yöntemi ile elde edilir ve konsola yazdırılır.

OCR Metin Tanıma Nasıl Alınır, Şekil 2: Resimden çıkarılan metin Görüntüden çıkarılan metin

1.3 Tesseract Dikkat Edilmesi Gerekenler

  1. Tesseract, 3.00 sürümünden itibaren çıktı metni biçimlendirmeyi, OCR konum verilerini ve sayfa düzeni analizini destekler.
  2. Tesseract, Windows, Linux ve MacOS üzerinde mevcuttur, ancak sınırlı geliştirme desteği nedeniyle Windows ve Ubuntu'da beklenildiği gibi çalıştığı öncelikli olarak doğrulanmıştır.
  3. Tesseract, sabit aralıklı ve orantılı aralıklı metinleri ayırt edebilir.
  4. OCRopus gibi bir ön yüz kullanılarak, Tesseract bir arka uç olarak idealdir ve daha zorlu OCR işleri için kullanılabilir, örneğin düzen analizi gibi.
  5. Tesseract'ın bazı eksiklikleri:
    • Son sürümler, Windows'ta derlenmek üzere tasarlanmamıştır
    • Tesseract'ın C# API sarmalayıcıları nadiren güncellenmektedir ve Tesseract'ın yeni sürümlerinin yıllar gerisindedir

C# dilindeki Tesseract hakkında daha fazla bilgi edinmek için lütfen Tesseract eğitimine bakın.

2. IronOCR ile OCR

2.1. IronOCR Yükleme

NuGet Package Manager Console'a aşağıdaki komutu girin:

Install-Package IronOcr

Ya da IronOCR kütüphanesini NuGet Package Manager üzerinden, diğer diller için ek paketlerle birlikte ve kullanımı basit ve uygun bir şekilde yükleyin.

OCR Metin Tanıma Nasıl Alınır, Şekil 3: IronOCR ve dil paketlerini NuGet Paket Yöneticisi üzerinden yükleyin NuGet Paket Yöneticisi üzerinden IronOCR ve diller paketleri kurun

2.2. IronOCR Kullanma

Aşağıda verilen görüntüden metni tanımak için örnek bir kod bulunmaktadır:

using IronOcr;

class Program
{
    static void Main()
    {
        // Create an IronTesseract instance with predefined settings
        var ocr = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
        };

        // Create an OcrInput instance for image processing
        using var input = new OcrInput();

        // Load the image to be processed
        input.AddImage("Demo.png");

        // Process the image and extract text
        var result = ocr.Read(input);

        // Output the recognized text
        Console.WriteLine(result.Text);
        Console.ReadKey();
    }
}
using IronOcr;

class Program
{
    static void Main()
    {
        // Create an IronTesseract instance with predefined settings
        var ocr = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
        };

        // Create an OcrInput instance for image processing
        using var input = new OcrInput();

        // Load the image to be processed
        input.AddImage("Demo.png");

        // Process the image and extract text
        var result = ocr.Read(input);

        // Output the recognized text
        Console.WriteLine(result.Text);
        Console.ReadKey();
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main()
		' Create an IronTesseract instance with predefined settings
		Dim ocr = New IronTesseract() With {
			.Language = OcrLanguage.EnglishBest,
			.Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
		}

		' Create an OcrInput instance for image processing
		Dim input = New OcrInput()

		' Load the image to be processed
		input.AddImage("Demo.png")

		' Process the image and extract text
		Dim result = ocr.Read(input)

		' Output the recognized text
		Console.WriteLine(result.Text)
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel
  • Bu kod, dil ve Tesseract sürümünü ayarlayarak bir IronTesseract nesnesini başlatır.
  • Ardından, AddImage yöntemi kullanılarak resim dosyalarını yüklemek için bir OcrInput nesnesi oluşturulur.
  • IronTesseract 'in Read yöntemi resmi işler ve metni çıkarır, ardından metin konsola yazdırılır.

OCR Metin Tanıma Nasıl Alınır, Şekil 4: IronOCR kütüphanesi kullanarak çıkarılan metin çıktısı IronOCR kütüphanesi kullanılarak çıkarılan metin çıktısı

2.3 IronOCR Dikkat Edilmesi Gerekenler

  1. IronOCR, Tesseract kütüphanesinin bir uzantısıdır ve daha fazla stabilite ve daha yüksek doğruluk sunar.
  2. IronOCR, PDF'ler ve fotoğraflardan metin içeriğini okuyabilir. Ayrıca çubuk kodlar ve kare kodlar (QR kodları) dahil olmak üzere 20'den fazla farklı türü okuyabilir.
  3. Çıktı, düz metin, yapılandırılmış veri, çubuk kod veya kare kod olarak işlenebilir.
  4. Kütüphane, dünya genelinde 125 dili tanır.
  5. IronOCR, tüm .NET ortamlarında esnek bir şekilde çalışır (konsol, Web, masaüstü, vb.) ve aynı zamanda Mono, Xamarin, Azure ve MAUI gibi en yeni mobil framework'leri de destekler.
  6. IronOCR, ücretsiz bir deneme sunar ve daha düşük fiyatlı bir geliştirme sürümüne sahiptir. Lisanslar hakkında daha fazla bilgi edinin.

Ayrıntılı bir IronOCR eğitim kılavuzu için, C#'ta bir görüntüden metin okuma konusunda bu makaleye başvurun.

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

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara