
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:
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:
IronOcr.Extensions.AdvancedScan uzantısının kurulu olduğundan emin olun, böylece güçlü ReadLicensePlate yönteminden yararlanabilirsiniz:
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;Imports IronOcrOptik 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);
}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);
}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);
}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 $999'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.

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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.
İlgili Makaleler

