Tesseract Engine nedir yazımda temel bilgileri vermiştim. Tesseract C# ile entegre edilerek çeşitli OCR (Optik Karakter Tanıma) işlemleri gerçekleştirilebilir. Aşağıda, Tesseract Engine’in C# ile kullanımı için bazı temel örnekler verilmiştir.
Bu örnek, bir görüntüden metin çıkarmak için Tesseract Engine’in nasıl kullanılacağını göstermektedir. Aşağıdaki kod, bir resim dosyasındaki metni okuyarak konsola yazdırır.
using System;
using Tesseract;
namespace TesseractExample
{
class Program
{
static void Main(string[] args)
{
// Tesseract OCR motorunu başlat
using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
{
// Resim dosyasını yükle
using (var img = Pix.LoadFromFile("example.png"))
{
// OCR işlemini gerçekleştir
using (var page = engine.Process(img))
{
// Tanımlanan metni al ve yazdır
var text = page.GetText();
Console.WriteLine("Metin: \n{0}", text);
// Tanımlanan metnin güvenilirlik oranını al ve yazdır
Console.WriteLine("Güvenilirlik Oranı: {0}", page.GetMeanConfidence());
}
}
}
}
}
}
Tesseract, farklı dillerde metin tanıma yeteneğine sahiptir. Bu örnek, Türkçe metin içeren bir resimden OCR işlemi gerçekleştirmektedir.
using System;
using Tesseract;
namespace TesseractTurkishExample
{
class Program
{
static void Main(string[] args)
{
// Türkçe dil desteğiyle Tesseract OCR motorunu başlat
using (var engine = new TesseractEngine(@"./tessdata", "tur", EngineMode.Default))
{
// Resim dosyasını yükle
using (var img = Pix.LoadFromFile("turkish_example.png"))
{
// OCR işlemini gerçekleştir
using (var page = engine.Process(img))
{
// Tanımlanan metni al ve yazdır
var text = page.GetText();
Console.WriteLine("Türkçe Metin: \n{0}", text);
}
}
}
}
}
}
Bu örnek, bir görüntünün belirli bir bölümünden metin çıkarmak için nasıl kullanılacağını gösterir. Görüntünün sadece bir kısmında OCR işlemi yapılır.
using System;
using Tesseract;
namespace TesseractRegionExample
{
class Program
{
static void Main(string[] args)
{
using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("example.png"))
{
// OCR işlemini gerçekleştirmek için bir alan belirle
var region = new Rect(50, 50, 400, 200);
using (var page = engine.Process(img, region))
{
// Tanımlanan metni al ve yazdır
var text = page.GetText();
Console.WriteLine("Belirtilen Alanın Metni: \n{0}", text);
}
}
}
}
}
}
Bu örnek, bir görüntüde aynı anda birden fazla dili tanımak için Tesseract Engine’in nasıl kullanılacağını gösterir.
using System;
using Tesseract;
namespace TesseractMultilingualExample
{
class Program
{
static void Main(string[] args)
{
// Birden fazla dil desteğiyle Tesseract OCR motorunu başlat
using (var engine = new TesseractEngine(@"./tessdata", "eng+tur", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("multilingual_example.png"))
{
// OCR işlemini gerçekleştir
using (var page = engine.Process(img))
{
// Tanımlanan metni al ve yazdır
var text = page.GetText();
Console.WriteLine("Tanımlanan Metin (İngilizce + Türkçe): \n{0}", text);
}
}
}
}
}
}
Bu örnek, OCR sonuçlarını JSON formatında dışa aktarmayı gösterir.
using System;
using Newtonsoft.Json;
using Tesseract;
namespace TesseractJsonOutputExample
{
class Program
{
static void Main(string[] args)
{
using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("example.png"))
{
using (var page = engine.Process(img))
{
// OCR sonuçlarını JSON formatında al
var jsonResult = JsonConvert.SerializeObject(new
{
Text = page.GetText(),
Confidence = page.GetMeanConfidence()
});
// JSON çıktısını yazdır
Console.WriteLine("JSON OCR Sonucu: \n{0}", jsonResult);
}
}
}
}
}
}
Bu örnekler, Tesseract Engine’in C# ile nasıl kullanılabileceğine dair farklı senaryoları göstermektedir. Tesseract, güçlü ve esnek yapısı sayesinde çok çeşitli OCR projelerinde kullanılabilir. Görüntü işleme ve metin tanıma işlemlerini birleştirerek, yazılım projelerinizde etkili OCR çözümleri geliştirebilirsiniz.