C#'da Plaka OCR Nasıl Yapılır (Eğitim)
Trafik yönetimi ve park sistemlerinden kolluk kuvvetleri ve ücretli geçiş çözümlerine kadar birçok sektörde, plaka tanıma vazgeçilmez bir araç haline geldi. Optik Karakter Tanıma (OCR) teknolojisinden faydalanarak, geliştiriciler görüntülerden metinleri etkili bir şekilde çıkarabilir, plaka tanıma sürecini otomatikleştirebilirler. Bu eğitimde, IronOCR, güçlü bir C# OCR kütüphanesi, kullanarak görüntülerden plakaları hassas bir şekilde okuyabileceğinizi göstereceğiz. Bilgisayarla görme 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ımanın sağlam bir çözümünü sunar. Temiz bir plaka görüntüsüyle veya tam bir araç fotoğrafıyla çalışıyor olsanız da, bu kılavuz size modern OCR tekniklerini kullanarak güvenilir bir plaka tanıma sistemi oluşturma adımlarını gösterecek.
Plaka Tanıma C# Nasıl Kullanılır
- Plaka tanıma kullanımı için C# Kütüphanesini kurun
- Araç plakası resmini yeni bir
OcrImageInputörneğine aktarın. - C#'ta metin çıkarma işlemini 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 inşa edilmiş bir C# OCR kütüphanesidir ve .NET uygulamalarında metin tanıma projelerine yüksek doğruluk ve verimlilik getirmek üzere tasarlanmıştır. Gürültülü veya düşük kaliteli görüntülerle başa çıkmak için ideal olan IronOCR, otomatik gürültü azaltma ve gri tonlama dönüşümü gibi güçlü görüntü ön işleme yetenekleri içerir ve metin çıkarma netliğini artırır.
IronOCR'un öne çıkan özelliklerinden bazıları:
- Yüksek OCR Doğruluğu: Çeşitli diller ve yazı tipleri için optimize edilmiştir, IronOCR karmaşık veya bozulmuş metinlerle çalışırken bile yüksek doğruluk sağlar.
- 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ü olmasını sağlar.
- OpenCV ile Entegrasyon: OpenCV desteği sayesinde, IronOCR belirli metin bölgelerini görüntüde tespit etme gibi bilgisayarla görme görevlerini gerçekleştirebilir, bu da plaka tanıma için özellikle kullanışlıdır.
- Gelişmiş Ön İşleme: Gri tonlama dönüşümü, döndürme, eğiklik giderme ve kontrast artırma için filtreler içerir, bunlar tanıma kalitesini artırmaya yardımcı olur.
- Esnek Giriş Seçenekleri: Çok sayfalı belgeleri ve ayarlanabilir bölgeleri destekler, geliştiricilere daha hızlı ve daha hedeflenmiş sonuçlar için belirlenen alanlarda OCR işlemine odaklanmasına olanak tanır.
Bu yeteneklerle, IronOCR, diğer bilgisayarlı görüş araçlarıyla entegrasyonda doğruluk, esneklik ve kolaylık arayan OCR uygulamaları oluşturmak için güçlü bir çözümdür.
Bir Visual Studio Projesi Oluşturun
Visual Studio'yu açıp "Yeni Bir Proje Oluştur"u seçerek başlayın. Bu, sizin (bizim durumumuzda, bir Konsol Uygulaması oluşturacağız) hangi tür projeyi oluşturmak istediğinizi seçebileceğiniz bir sayfaya götürecek. İstediğiniz uygulama türünü seçin ve "İleri"ye tıklayın.

Şimdi, projenize bir isim verin ve kaydedileceği yeri seçin.

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

Bir sonraki adım, plaka işlemi başlatabilmemiz için IronOCR kütüphanesini kurmaktır.
IronOCR'un Kurulumu
C# projenizde IronOCR ile başlamak için, NuGet'ten IronOCR paketini yüklemeniz gerekecek. IronOCR, .NET Framework ve .NET Core ile uyumludur, böylece çeşitli .NET uygulamalarına kolayca entegre edilebilir.
1. Adım: Paket Yöneticisi Konsolunu Açın
Visual Studio'da, Araçlar > NuGet Paket Yöneticisi > Paket Yöneticisi Konsolu yolunu takip edin.
2. Adım: IronOCR Paketini Kurun
Paket Yöneticisi Konsoluna aşağıdaki komutu girin:
Install-Package IronOcr
Bu komut, projenizde OCR işlevlerini çalıştırmak için gereken tüm bağımlılıklarla birlikte IronOCR kütüphanesini kurar. Uygulamamız, bilgisayarlı görüş kullanarak plaka tespiti gibi gelişmiş özellikler gerektirdiğinden, isteğe bağlı IronOcr.ComputerVision.Windows paketini de bu şekilde kurabilirsiniz:
Install-Package IronOcr.ComputerVision.Windows
IronOcr.Extensions.AdvancedScan uzantısının kurulu olduğundan emin olun, böylece güçlü ReadLicensePlate yönteminden yararlanabilirsiniz:
Install-Package IronOcr.Extensions.AdvancedScan
Alternatif olarak, ihtiyacınız olan paketleri aramak için Araçlar > NuGet Paket Yöneticisi > Çözüm İçin NuGet Paketlerini Yönet seçeneğini kullanarak paketleri kurabilirsiniz:

Kodu Ayarlama
Son olarak, kodumuzun başına gerekli ilave ve using ifadelerini eklemeliyiz:
using IronOcr;
using IronOcr;
Imports IronOcr
Optik Karakter Tanıma ile Plakaları Okuma
Bu bölümde, IronOCR, Tesseract OCR Motoru, kullanarak plaka okumak için bir program oluşturacağız. Araç tespiti uygulamak için ayrıca makine öğrenimi kütüphanelerini de dahil edebiliriz. Özellikle, IronOCR, açık kaynaklı lider bilgisayarla görme kütüphanesi OpenCV ile entegre olup, araç ve plaka gibi nesneleri tespit etme görevlerini yerine getirmemize olanak sağlar.
Örnek Plaka Görüntüsü
Aşağıdaki plaka ile çalışacağız:

Plakaya OCR Uygulamak için Örnek Kod
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) için yöntemler sağlayanIronTesseractsınıfının yeni bir örneğini oluşturur. -
Görüntü Girişi:
usingifadesi, belirtilen resim dosyası ile yeni birOcrImageInputnesnesi oluşturur"licensePlate.jpeg". Bu nesne, OCR işlemi için görüntü verilerini tutmak üzere tasarlanmıştır. -
Görüntü Ön İşleme:
input.DeNoise();, görüntü kalitesini artırmak için dijital bir gürültü azaltma filtresi uygular ve OCR motorunun metni okumasını kolaylaştırır.input.ToGrayScale();, tanıma doğruluğunu ve işlem hızını artırabilecek şekilde görüntüyü gri tonlamalıya dönüştürür.
-
Plaka Tanıma:
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);satırı, işlenmiş görüntüyü analiz etmek ve tespit ettiği herhangi bir plaka bilgisini çıkarmak içinReadLicensePlateyöntemini kullanır ve sonuçları birOcrLicensePlateResultnesnesinde saklar. -
Çıktı Depolama: Plaka metni, plakadaki tanınan metni içeren
result.Text'e erişilerekoutputdizesi değişkeninde saklanır. - Konsol Çıkışı: Son olarak,
Console.WriteLine(output);çıkarılan plaka metnini doğrulama için konsola yazdırır.
Bir Arabadan Plaka Numaralarını Tarama
Sadece plaka yerine tüm arabanın bir görüntüsüne sahipsek, plaka alanına odaklanmak için dikdörtgen bir bölge belirtebiliriz. Bu alanı piksel olarak 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 bölgeyi belirterek, işlem hızını artırır ve gereksiz metin çıkarmayı ö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 amacıyla kullanılacak yeni birOcrInputnesnesi oluşturur. - İlgi Alanını Tanımlama:
var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);, görüntü içinde dikdörtgen bir alan (contentArea) tanımlar. Bu dikdörtgen, plakanın bulunması beklenen koordinat ve boyutları (genişlik ve yükseklik) belirtir. - Görüntüyü Yükleme:
input.LoadImage("CarPlate.jpeg", contentArea);belirtilen resim dosyasını ("CarPlate.jpeg") yükler ve tanımlanan dikdörtgen (contentArea) üzerinde odaklanarak OCR işlemine sınırlı bir alan getirir. - Plakayı Okuma:
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);, giriş görüntüsünü plaka karakterleri için analiz etmek ve çıkarılan metni içeren birOcrLicensePlateResultnesnesi döndürmek üzereReadLicensePlateyöntemini çağırır. - Çıktı:
Console.WriteLine(result.Text);, plakadan tanınan metni konsola yazdırır.
Otomatik Plaka Tanıma
IronOCR, çeşitli görüntü işleme teknikleri kullanarak görüntüdeki metin bölgelerini tespit etmek için OpenCV'den yararlanır. Bu işlevsellik sayesinde, programlar görüntüdeki metin bölgelerini tespit edip, ardından bu bölgeleri okumak için Tesseract'ı kullanarak plakaları tespit edebilir.
Kurulum
Plaka tespit modelini etkinleştirmek için gerekli paketi, Paket Yöneticisi Konsolu aracılığıyla yükleyin:
Plakalar için otomatik bölge tespitini kullanma örneği:
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: Tesseract motoru ile optik karakter tanıma (OCR) için kullanılacak
IronTesseractsınıfının bir örneği oluşturulur. - Görüntü Girişi: Belirtilen resim dosyası ("CarPlate.jpeg") ile yeni bir
OcrImageInputnesnesi başlatılır. Bu nesne, OCR sürecine giriş olarak hizmet edecek ve doğru kaynak yönetimini sağlamak için birusingifadesine kapatılmıştır. - Metin Bölgesi Algılama:
FindTextRegion()yöntemi,inputnesnesinde çağrılır. Bu yöntem, bilgisayarlı görüş tekniklerini kullanarak özellikle plaka hedeflenen metin içeren alanları otomatik olarak tespit eder. - Plaka Tanıma:
ReadLicensePlateyöntemi, algılanan metin bölgelerini analiz etmek ve plaka numarasını çıkarmak için çağrılır. Sonuç, tanınan metni ve ilgili herhangi bir metaveriyi içeren birOcrLicensePlateResultnesnesinde saklanır. - Çıktı: Tespit edilen plaka metni konsolda yazdırılır, kullanıcıya çıkarılan plaka numarasını görme olanağı sunar.
IronOCR Lisanslama

IronOCR'u kendiniz denemek isteyenler için, IronOCR tüm araç yelpazesine erişim sağlayan bir ücretsiz deneme sunuyor, böylece lisans satın almadan önce kendi projelerinizde deneyebilirsiniz. Ücretsiz deneme süreniz dolduğunda, IronOCR lisansı, sadece $liteLicense'den başlayan lite lisansı ile başlar. Ayrıca, telif ücretsiz yeniden dağıtım kapsamı, kesintisiz destek ve sürekli ürün güncellemeleri gibi ek bir maliyet karşılığında isteğe bağlı eklentiler sağlar.
Bunun ötesinde, sadece IronOCR dışında daha fazla Iron Software ürünü kullanmanız gerekirse, PDF ile ilgili görevleriniz için IronPDF veya Word belgeleri ile çalışmak için IronWord gibi, Iron Software ayrıca Iron Suite sunar, bu da tüm araç yelpazesine uygun bir fiyatla erişim sağlamanın harika bir yoludur.
Sonuç
Bu kılavuzda, C# kullanarak güçlü bir IronOCR kullanarak güvenilir bir plaka tanıma sistemi kurmayı araştırdık. Güçlü metin çıkarma yetenekleri ve OpenCV ile entegrasyonu sayesinde IronOCR, araç görüntülerinden doğru metin tanıma gerektiren uygulamalar için verimli ve kullanımı kolay bir çözüm sunar. Görüntüyü ön işlemekten belirli tespit bölgelerini ayarlamaya kadar, IronOCR, trafik ve gözetim görüntüleri gibi gürültülü veya karmaşık görüntüler için özelleştirilmiş araçlarla OCR sürecini basitleştirir.
Trafik izleme, park uygulama veya otomatik plaka tanıma gerektiren herhangi bir uygulama geliştiriyorsanız, 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ümleri dağıtmaya 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#'ta plaka numaralarını tanımlamak için OCR'u nasıl kullanabilirim?
C#'ta plaka numaralarını tanımlamak için IronOCR'u kullanarak, bir OCR örneği oluşturmak için IronTesseract sınıfını kullanın, plakanın bulunduğu görüntüyü yükleyin, gürültü azaltma gibi ön işleme filtrelerini uygulayın ve metni çıkarmak için ReadLicensePlate yöntemini kullanın.
Plaka tanıma için OCR kullanmanın avantajları nelerdir?
Plaka tanıma için OCR kullanmak, metin çıkarım sürecini otomatikleştirerek yüksek doğruluk ve verimlilik sağlar. IronOCR, çoklu resim formatları ve bilgisayarla görme entegrasyonu desteği sağlayarak trafik yönetimi ve kolluk kuvvetleri gibi uygulamalar için idealdir.
OCR işlemesinde gürültülü veya düşük kaliteli görüntüleri nasıl ele alabilirim?
IronOCR, gürültü azaltma ve gri tonlamaya dönüştürme gibi güçlü resim ön işleme olanakları sağlar, bu da gürültülü veya düşük kaliteli görüntülerle çalışırken metin çıkarım doğruluğunu artırır.
Bir resmin belirli bölgelerine OCR işlemesini odaklamak mümkün mü?
Evet, IronOCR, bir resimdeki ilgi alanlarını belirlemenize izin verir ve OCR işlemesini burada odaklayarak, plaka gibi alanlardan metin çıkarım 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 Console Application oluşturun, NuGet üzerinden IronOCR paketini yükleyin ve IronOCR sınıfları ve yöntemleri kullanarak OCR mantığını uygulayın. Bu kurulum, uygulamanızda OCR görevlerini kolayca gerçekleştirmenizi sağlar.
IronOCR, plaka tanıma için hangi özellikleri sunar?
IronOCR, yüksek OCR doğruluğu, gelişmiş bilgisayarla görme görevleri için OpenCV ile entegrasyon, gelişmiş ön işleme filtreleri ve çoklu resim ve PDF formatlarına destek gibi özellikler sunarak plaka tanıma için çok yönlü bir araç haline getirir.
IronOCR bilgisayarla görme görevleriyle nasıl entegre edilir?
IronOCR, otomatik metin bölgesi algılama gibi çeşitli bilgisayarla görme görevlerini gerçekleştirmek için OpenCV ile entegre olur ve plaka tanıma gibi uygulamalar için OCR işlemini geliştirir.
IronOCR için hangi lisanslama seçenekleri mevcuttur?
IronOCR, bir lite lisansından başlayarak çeşitli lisans seçeneklerinin yanı sıra ücretsiz bir deneme sunar. Farklı uygulamalarda genişletilmiş işlevsellik arayan kullanıcılar için ek eklentiler ve Iron Suite mevcuttur.
OCR teknolojisi tüm taşıt resimlerine uygulanabilir mi?
Evet, IronOCR tüm araç resimleri ile kullanılabilir. Plaka bölgesini belirterek, OCR işlemesini istenen alana odaklayabilir, gereksiz metin çıkarımından kaçınarak işlem verimliliğini artırabilirsiniz.



