C#'da Plaka OCR Nasıl Yapılır (Eğitim)
Plaka tanıma, trafik yönetimi ve park sistemlerinden yasa uygulama ve otoyol çözümlerine kadar birçok sektörde vazgeçilmez bir araç haline gelmiştir. Optik Karakter Tanıma (OCR) teknolojisinden yararlanarak, geliştiriciler görüntülerden metin çıkarabilir, plaka tanımlama sürecini otomatik hale getirebilirler. Bu eğitimde, IronOCR'u, bir güçlü C# OCR kütüphanesi olarak, plakaları görüntülerden doğru bir şekilde okumak için nasıl kullanacağınızı göstereceğiz. Bilgisayar görüsü görevleri için OpenCV kaynak kodu ile sorunsuz entegrasyonu sayesinde, IronOCR, karmaşık veya gürültülü görüntü kaynaklarından bile metin tanımada sağlam bir çözüm sunar. Temiz bir plaka görüntüsü veya tam araç fotoğrafı ile çalışıyor olun, bu rehber sizi modern OCR tekniklerini kullanarak güvenilir bir plaka tanıma sistemi oluşturma adımlarında yönlendirecek.
Plaka Tanıma C# Nasıl Kullanılır
- Plaka tanıma için C# Kütüphanesini yükleyin
- Plaka resmini yeni bir
OcrImageInputörneğine aktarın. - C#'ta metin çıkarmayı iyileştirmek için görüntü filtreleri uygulayın.
- Fotoğraftaki plaka bölgesini belirterek tanıma hızını artırın.
- Çıkarılan metni bir
OcrLicensePlateResultörneği kullanarak yazdırın.
IronOCR ile Başlarken
IronOCR, Tesseract OCR motoru üzerine kurulu bir C# OCR kütüphanesidir ve .NET uygulamalarında metin tanıma projelerine yüksek doğruluk ve verimlilik getirmek için özel olarak tasarlanmıştır. Gürültülü veya düşük kalite görüntülerle ilgilenmek için ideal olan IronOCR, otomatik gürültü azaltma ve gri tonlama dönüştürme gibi güçlü görüntü ön işleme yeteneklerine sahiptir, bu da metin çıkarma netliğini artırır.
IronOCR'un dikkat çekici özelliklerinden bazıları şunlardır:
- Yüksek OCR Doğruluğu: Çeşitli diller ve yazı tipleri için optimize edilmiştir, IronOCR, karmaşık veya bozuk metinlerle bile çalışırken doğruluğuyla başarılıdır.
- Görüntü ve PDF Desteği: Çeşitli görüntü formatlarından ve PDF dosyalarından metin okuyabilir, bu da farklı belge türleri için çok yönlü hale getirir.
- OpenCV ile Entegrasyon: OpenCV desteği sayesinde, IronOCR görüntüler içerisindeki belirli metin bölgelerini tespit etme gibi bilgisayar görüsü görevlerini gerçekleştirebilir, bu özellikle plaka tanıma için faydalıdır.
- İleri Düzey Ön İşleme: Tanıma kalitesini artırmak için gri tonlama dönüşümü, döndürme, eğiklik düzeltme ve kontrast artırma filtrleri içerir.
- Esnek Giriş Seçenekleri: Çok sayfalı belgeleri ve ayarlanabilir bölgeleri destekler, geliştiricilerin OCR işlemesini seçilen alanlara odaklayarak daha hızlı ve hedef odaklı sonuçlar almasına olanak tanır.
Bu yeteneklerle, IronOCR, diğer bilgisayar görüsü araçlarıyla entegrasyonu kolay olan OCR uygulamaları geliştirmek için güçlü bir çözümdür.
Visual Studio Projesi Oluşturma
Visual Studio'yu açarak ve "Yeni Bir Proje Oluştur" seçeneğini seçerek başlayın. Bu sizi, hangi türde bir proje oluşturmak istediğinizi seçebileceğiniz bir sayfaya yönlendirecektir (bizim durumumuzda, Konsol Uygulaması yapacağız). İstediğiniz uygulama türünü seçin ve "İleri" düğmesine tıklayın.

Artık projenize bir isim verin ve kaydedileceği konumu seçin.

Sonunda, hedef .NET framework'unuzu seçin ve "Oluştur" düğmesine tıklayın. Bu, aşağıda gösterildiği gibi projeyi oluşturacaktır.

Sonraki adım, plaka işleme başlamak için IronOCR kütüphanesini kurmaktır.
IronOCR'nin Kurulumu
C# projenize IronOCR ile başlamak için IronOCR paketini NuGet'ten yüklemeniz gerekecektir. IronOCR, çeşitli .NET uygulamalarına entegrasyonu kolaylaştıran .NET Framework ve .NET Core ile uyumludur.
Adım 1: Paket Yöneticisi Konsolunu Açma
Visual Studio'da, Tools > NuGet Paket Yöneticisi > Paket Yöneticisi Konsolu yolu ile gidin.
Adım 2: IronOCR Paketini Yükleme
Paket Yöneticisi Konsolunda aşağıdaki komutu girin:
Install-Package IronOcr
Bu komut, proje OCR fonksiyonlarını çalıştırmak için gereken tüm bağımlılıkları içeren IronOCR kütüphanesini yükler. Uygulamamız, bilgisayar görüsünü kullanarak plaka tespiti gibi gelişmiş özellikler gerektirdiğinden, aynı zamanda isteğe bağlı IronOcr.ComputerVision.Windows paketini bu şekilde yükleyebilirsiniz:
Install-Package IronOcr.ComputerVision.Windows
Güçlü ReadLicensePlate yönteminden yararlanabilmek için IronOcr.Extensions.AdvancedScan uzantısını yüklü olduğunuzdan emin olun:
Install-Package IronOcr.Extensions.AdvancedScan
Alternatif olarak, Tools > NuGet Paket Yöneticisi > Çözüm için NuGet Paketlerini Yönet yolunu kullanarak paketleri yükleyebilir ve gereken paketleri arayabilirsiniz:

Kodu Ayarlama
Son olarak, kodumuzun üst kısmına gerekli ithalatları ve 'using' ifadelerini eklemeliyiz:
using IronOcr;
using IronOcr;
Imports IronOcr
Optik Karakter Tanıma ile Plaka Okuma
Bu bölümde, resimlerden metin çıkarmada üstün olan Tesseract OCR Motorunu kullanan IronOCR ile plakaları okumak için bir program oluşturacağız. Araç tespitini uygulamak için, ek makine öğrenme kütüphanelerini de dahil edebiliriz. Özellikle, IronOCR, araçları ve plakaları tanımlama gibi nesne tespit görevlerini gerçekleştirmemizi sağlayan, öncü açık kaynak kodlu bilgisayarla görme kütüphanesi OpenCV ile entegre olur.
Örnek Plaka Görseli
Aşağıdaki plaka ile çalışacağız:

Plaka Üzerinde OCR Uygulama Örneği
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrImageInput("licensePlate.jpeg"))
{
// Fixes digital noise and makes the image easier to read
input.DeNoise();
input.ToGrayScale();
// Reads the license plate information and stores it for further use
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
// Saves the license plate text to a string variable
string output = result.Text;
// Outputs the license plate text to the console
Console.WriteLine(output);
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrImageInput("licensePlate.jpeg"))
{
// Fixes digital noise and makes the image easier to read
input.DeNoise();
input.ToGrayScale();
// Reads the license plate information and stores it for further use
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
// Saves the license plate text to a string variable
string output = result.Text;
// Outputs the license plate text to the console
Console.WriteLine(output);
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrImageInput("licensePlate.jpeg")
' Fixes digital noise and makes the image easier to read
input.DeNoise()
input.ToGrayScale()
' Reads the license plate information and stores it for further use
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
' Saves the license plate text to a string variable
Dim output As String = result.Text
' Outputs the license plate text to the console
Console.WriteLine(output)
End Using

Kod Açıklaması:
-
Başlatma:
var ocr = new IronTesseract();, Optik Karakter Tanıma (OCR) yöntemleri sağlayanIronTesseractsınıfının yeni bir örneğini oluşturur. -
Resim Girişi:
usingifadesi, belirtilen resim dosyası"licensePlate.jpeg"ile yeni birOcrImageInputnesnesi oluşturur. Bu nesne, OCR işlemi için görüntü verilerini tutmak üzere tasarlanmıştır. -
Görüntü Ön İşleme:
input.DeNoise();, resmin kalitesini artırmak ve OCR motorunun metni okumasını kolaylaştırmak için dijital bir gürültü azaltma filtresi uygular.input.ToGrayScale();, resmin daha iyi tanınma doğruluğu ve işlem hızı için gri tonlamaya dönüştürülmesini sağlar.
-
Plaka Tanıma:
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);satırı, işlenen resmi analiz etmek ve tespit ettiği herhangi bir plaka bilgisini çıkarmak içinReadLicensePlateyöntemini kullanır ve sonuçları birOcrLicensePlateResultnesnesine depolar. -
Çıktı Depolama: Plaka metni, plakadan tanınmış metni içeren
result.Texterişilerek, string değişkenoutputiçinde saklanır. - Konsol Çıktısı: Son olarak,
Console.WriteLine(output);, çıkarılan plaka metnini doğrulama için konsola yazdırır.
Bir Arabadan Plaka Numaralarını Tarama
Eğer elimizde bir arabanın tamamının görüntüsü varsa, sadece plakayı görüntülemek yerine plaka alanına odaklanmak için dikdörtgen bir alan belirleyebiliriz. Bunu pikselleri tanımlamak için System.Drawing.Rectangle kullanabiliriz.
Orijinal Görüntü
Örneğimiz için aşağıdaki görüntü dosyasını kullanacağız:

İlgili alanı belirleyerek işlem hızını artırır ve gereksiz metinlerin çıkarılmasını önleriz.
Uygulama Kodu
using IronOcr;
using System.Drawing;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
input.LoadImage("CarPlate.jpeg", contentArea);
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
Console.WriteLine(result.Text);
}
using IronOcr;
using System.Drawing;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
input.LoadImage("CarPlate.jpeg", contentArea);
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System.Drawing
Private ocr = New IronTesseract()
Using input = New OcrInput()
Dim contentArea = New Rectangle(x:= 252, y:= 282, width:= 148, height:= 47)
input.LoadImage("CarPlate.jpeg", contentArea)
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
Console.WriteLine(result.Text)
End Using

Kod Açıklaması:
- Başlatma:
var ocr = new IronTesseract();, OCR işlemlerini yürütmekten sorumlu olanIronTesseractsınıfının yeni bir örneğini oluşturur. - OCR Girişi:
using (var input = new OcrInput())ifadesi, OCR için görüntüyü yüklemek ve işlemek üzere kullanılacak yeni birOcrInputnesnesi oluşturur. - İlgi Alanının Belirlenmesi:
var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);resim içinde dikdörtgen bir alan (contentArea) tanımlar. Bu dikdörtgen, plakanın bulunması beklenen koordinatları ve boyutları (genişlik ve yükseklik) belirtir. - Resmin Yüklenmesi:
input.LoadImage("CarPlate.jpeg", contentArea);, belirtilen resim dosyasını ("CarPlate.jpeg") yükler ve tanımlanan dikdörtgene (contentArea) odaklanarak OCR işleminde bu bölgeyi sınırlar. - Plakanın Okunması:
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);, plaka karakterlerini analiz eden ve çıkarılan metni içeren birOcrLicensePlateResultnesnesi döndürenReadLicensePlateyöntemini çağırır. - Çıktı:
Console.WriteLine(result.Text);, plaka üzerindeki tanınmış metni konsola yazdırır.
Otomatik Plaka Tanıma
IronOCR, görüntüler içinde metin bölgelerini belirlemek için çeşitli görüntü işleme teknikleri kullanarak OpenCV'den yararlanır. Bu işlevsellik, görüntüdeki metin alanlarını tespit ederek ve ardından bu alanları okumak için Tesseract'ı kullanarak programların plakaları algılamasını sağlar.
Kurulum
Plaka tespit modeli etkinleştirmek için, Paket Yöneticisi Konsolu üzerinden gerekli paketi kurun:
Plakalar için otomatik bölge tespiti kullanılarak örnek:
var ocr = new IronTesseract();
using (var input = new OcrImageInput("CarPlate.jpeg"))
{
input.FindTextRegion();
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrImageInput("CarPlate.jpeg"))
{
input.FindTextRegion();
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrImageInput("CarPlate.jpeg")
input.FindTextRegion()
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
Console.WriteLine(result.Text)
End Using

Kod Açıklaması:
- Başlatma:
IronTesseractsınıfının bir örneği oluşturulur ve bu örnek Tesseract motoruyla optik karakter tanıma (OCR) için kullanılacaktır. - Resim Girişi: Belirtilen resim dosyası ("CarPlate.jpeg") ile yeni bir
OcrImageInputnesnesi örneklenir. Bu nesne, OCR süreci için giriş olarak hizmet edecek ve uygun kaynak yönetimini sağlamak için birusingifadesine tabi olacaktır. - Metin Alanı Tespiti:
FindTextRegion()metodu,inputnesnesi üzerinde çağrılır. Bu yöntem, bilgisayarla görme tekniklerini kullanarak görüntü içinde metin içermesi muhtemel alanları otomatik olarak belirler, özellikle plakayı hedef alarak. - Plaka Tanıma:
ReadLicensePlatemetodu, tespit edilen metin bölgelerini analiz etmek ve plaka numarasını çıkarmak için çağrılır. Sonuç, tanınmış metni ve ilgili tüm meta verileri tutan birOcrLicensePlateResultnesnesinde saklanır. - Çıktı: Tespit edilen plaka metni konsola yazdırılır, böylece kullanıcı çıkarılan plaka numarasını görebilir.
IronOCR Lisanslama

IronOCR'yi kendiniz denemek isteyenler için, IronOCR, lisans satın almadan önce kendi projelerinizde deneyebilmeniz anlamına gelen, sunduğu tüm araçları kullanmanıza erişim sağlayan bir ücretsiz deneme lisansı sunar. Ücretsiz denemeniz sona erdiğinde, IronOCR lisanslama, lite lisans için sadece $liteLicense'den başlar. Zorunlu olmayan fakat telif ücretsiz yeniden dağıtım kapsaması ve kesintisiz destek ile sürekli ürün güncellemeleri gibi ek maliyet karşılığı sağladığı eklenti seçenekleri de sunmaktadır.
Bunun ötesinde, sadece IronOCR'nin ötesinde daha fazla Iron Software ürünü kullanmanız gerektiğinde, PDF ile ilgili işlemleriniz için IronPDF veya Word belgeleri üzerinde çalışmak için IronWord gibi ürünleri de içeren Iron Suite'i de sunar, bu da tüm araç çerçevesine mükemmel bir fiyatla erişmenin harika bir yoludur.
Sonuç
Bu kılavuzda, IronOCR kullanarak C#'ta güvenilir bir plaka tanıma sistemi nasıl oluşturulacağını keşfettik. Güçlü metin çıkarma kapasiteleri ve OpenCV ile entegrasyonu sayesinde, IronOCR, araç görüntülerinden doğru metin tanıma gerektiren uygulamalar için verimli, kullanımı kolay bir çözüm sunar. Görüntüyü ön işlemekten spesifik tespit bölgelerini ayarlamaya kadar, IronOCR, trafik ve gözetim görüntülerindeki plakalar gibi gürültülü veya karmaşık görseller için özelleştirilmiş araçlarla OCR sürecini basitleştirir.
Trafik izleme, otopark denetimi veya otomatik plaka tanıma gerektiren herhangi bir uygulama için geliştirirken, IronOCR, .NET ortamlarına sorunsuz bir şekilde entegre olan kapsamlı bir kütüphane sunar. Bu adımları takip ederek, çeşitli gerçek dünya senaryolarında verimliliği ve doğruluğu artıran OCR destekli çözümler devreye almaya hazırsınız. Bölge seçimi ve gürültü azaltma gibi ek özelliklerle, IronOCR, plaka tanıma görevlerinizin en iyi sonuçlar için optimize edilmesini sağlar.
Sıkça Sorulan Sorular
C#'da plaka numaralarını tanımlamak için OCR'yi nasıl kullanabilirim?
IronOCR'yi kullanarak, C#'da plaka numaralarını tanımlamak için bir OCR örneği oluşturmak, plaka içeren görüntüyü yüklemek, gürültü azaltma gibi ön işleme filtreleri uygulamak ve ReadLicensePlate yöntemiyle metni çıkarmak için IronTesseract sınıfını kullanabilirsiniz.
Plaka tanıma için OCR kullanmanın faydaları nelerdir?
Plaka tanıma için OCR kullanımı, metin çıkartım sürecini otomatikleştirir ve yüksek doğruluk ve verimlilik sunar. IronOCR, bu işlemi çeşitli görüntü formatları ve bilgisayar görüşü entegrasyonu desteği ile geliştirir ve trafik yönetimi ve kolluk kuvvetleri gibi uygulamalar için idealdir.
OCR işleminde gürültülü veya düşük kaliteli görüntülerle nasıl başa çıkabilirim?
IronOCR, otomatik gürültü azaltma ve gri tonlama dönüşümü gibi güçlü görüntü ön işleme yetenekleri sağlar ve bu, gürültülü veya düşük kaliteli görüntülerle uğraşırken bile metin çıkartım doğruluğunu artırır.
OCR işlemini bir görüntünün belirli bölgelerine odaklamak mümkün mü?
Evet, IronOCR, OCR işlemine odaklanmak için bir görüntüde dikdörtgen ilgi alanları belirtmenize olanak tanır ve bu da plaka gibi alanlardan metin çıkartımının hızını ve doğruluğunu artırır.
Bir Visual Studio projesinde OCR ile nasıl başlamalıyım?
Bir Visual Studio projesinde OCR kullanmaya başlamak için, yeni bir Konsol Uygulaması oluşturun, NuGet üzerinden IronOCR paketini yükleyin ve IronOCR sınıf ve yöntemlerini kullanarak OCR mantığını uygulayın. Bu kurulum, uygulamanızda OCR görevlerini kolaylıkla yerine getirmenize olanak tanır.
IronOCR, plaka tanıma için hangi özellikleri sunar?
IronOCR, yüksek OCR doğruluğu, gelişmiş bilgisayar görselleme görevleri için OpenCV entegrasyonu, gelişmiş ön işleme filtreleri ve farklı görüntü ve PDF formatları desteği sunar ve bu da onu plaka tanıma için çok yönlü bir araç yapar.
IronOCR bilgisayar görselleme görevleriyle nasıl entegre olur?
IronOCR, otomatik metin bölgesi algılama gibi çeşitli bilgisayar görselleme görevlerini gerçekleştirmek için OpenCV ile entegre olur ve bu, örneğin plaka tanıma gibi uygulamalar için OCR sürecini geliştirir.
IronOCR için hangi lisanslama seçenekleri mevcuttur?
IronOCR bir ücretsiz deneme sürümü sunarken, farklı uygulamalar için genişletilmiş işlevsellik arayan kullanıcılar için çeşitli lisans seçenekleri ile birlikte Iron Suite ve ek eklentiler de bulunmaktadır.
OCR teknolojisi tam araç görüntüleri için uygulanabilir mi?
Evet, IronOCR, tüm araçların görüntüleriyle kullanılabilir. OCR işlemini istenen bölgeye odaklamak için plaka bölgesini belirterek gereksiz metin çıkartımını önleyebilir ve işlem verimliliğini artırabilirsiniz.



