.NET MAUI OCR IronOCR Kullanılarak
Giriş
Microsoft, .NET Framework ile çok platformlu uygulamalar oluşturmak için bir çerçeve olan .NET MAUI (Çok platformlu Uygulama UI'si) yayınladı. Bu, aynı kod tabanını kullanarak Android, iOS ve Windows üzerinde çalışan kod yazmanıza olanak tanır, zamanınızı, kaynaklarınızı ve çabanızı tasarruf etmenizi sağlar. .NET MAUI açık kaynaklıdır. GitHub üzerinde örneklerle birlikte .NET MAUI projesinin kaynak kodunu alabilirsiniz.
Bu Nasıl Yapılır Kılavuzunda, örneklerle birlikte IronOCR kutuphanesi kullanarak .NET MAUI üzerinde bir OCR işlemci uygulaması oluşturmayı öğreneceğiz.
.NET MAUI'de OCR Nasıl Yapılır
- .NET MAUI'de OCR yapmak için C# kutuphanesini indirin
- MAUI projesinin arayüzünü yapılandırın
- Görüntünün tam yolunu FilePicker sınıfını kullanarak iletin
- Görüntü üzerinde OCR gerçekleştirmek için
Readyöntemini çağırın - Çıkarılan metne Text özelliğine erişerek ulaşın ve görüntüleyin
IronOCR: .NET OCR kutuphanesi
IronOCR, geliştiricilerin projelerine Optik Karakter Tanima (OCR) ozelligini kolayca entegre etmelerini saglayan bir .NET OCR NuGet kutuphanesidir. IronOCR kullanarak, PDF belgeleri taranip aranabilir ve duzenlenebilir metin/verilere herhangi bir veri kalitesi kaybi olmaksizin dönüştürulebilir. Bu, kullanicilarin ihtiyaç duyduklari bilgileri PDF belgelerinden kolayca bulmalarini ve gerekli ise değişiklikler veya düzeltmeler yapmalarini saglar.
IronOCR, her platform icin mevcut olan Tesseract ikili dosyalarinin en gelişmiş surumudur. Hizi, dogrulugu ve Tesseract'in tüm versiyonlarini (Tesseract 3'ten Tesseract 5'e kadar) destekleyen yerel bir DLL/API'yi artiran tek bir kolay kurulum/indirme sunar.
IronOCR'un dil destegi genistir, kullanicilara 125 uluslararasi dil sunar. Ingilizce dil araci/DLL ile varsıyılan olarak yuklenir. Ancak, onlarin kutuphanelerini NuGet uzerinden kurarak veya DLL'leri indirerek daha fazla dil ekleyebilirsiniz.
Tesseract ile Karsilastirma
IronOCR, özellikle C# geliştiricileri icin tasarlanmistir ve .NET uygulamalariyla sorunsuz entegre olur. Buna karsilik, Tesseract, C# ile kullanmak icin geliştiricilerin kendi sarmalama siniflarini yazmalarini gerektiren genel bir OCR kutuphanesidir. Ayrica, IronOCR, yenilikci yapay zeka algoritmalari sayesinde diğer kutuphanelere gore daha iyi bir dogruluk ve hiz sunar.
IronOCR, kapsamli dokümantasyon ve teknik destek ile birlikte gelir, bu da yeni başlayan geliştiricilerin bile hizli bir sekilde başlayabilmesini kolaylastirir.
IronOCR, Tesseract'ten çok daha dogrudur. Gerçekten de, %99'dan fazla bir dogruluk oranina sahiptir, oysa Tesseract'in dogruluk orani sadece yaklasik %70,2 ile %92,9 arasindadir. IronOCR ve Tesseract karsilastirmasiyla ilgili daha fazla bilgi ve destek icin bu YouTube videosuna bakin.
Bir OCR MAUI uygulamasi oluşturma adimlari
IronOCR kullanarak .NET MAUI cercevesinde bir OCR uygulamasi oluşturmak icin bu adimlari izleyin.
Önkoşullar
.NET MAUI'de bir OCR uygulamasi oluşturmak icin gereksinimler sunlardir:
- Visual Studio 2022 (En son sürüm)
- .NET 6 veya 7
- Visual Studio'da yuklu MAUI paketleri
- Visual Studio'da calisan bir .NET MAUI projesi
IronOCR'u Yükleyin
Ilk adim, IronOCR kutuphanesini NuGet Paket Yonetici Konsolu'nu kullanarak kurmaktir. Cozum gezgini uzerine sag tiklayarak NuGet Paket Yonetici Konsolu'nu acin ve IronOCR kutuphanesini kurmak icin su komutu girin:
Install-Package IronOcr
Frontend Tasarimi
Bu bölümde uygulamanin on yuzunu tasarlayacagiz. MainPage.xaml dosyasini acin.
MainPage.xaml
OCR icin görüntü veya PDF belgesini secmemize yardimci olacak bir dugme atadik. Butonun Clicked özelliği, bir sonraki bölümde tanımlayacağımız IOCR fonksiyonunu çalıştıracak şekilde ayarlanmıştır.
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
Burada, OCRImage adıyla bir Image öğesi oluşturuyoruz. Bu görüntü kutusu secilen dosyayi görüntüleyecektir.
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
Ardından, bir Editor kontrolü oluşturuyoruz. Bu, görüntü veya PDF belgesinden cikarilan metni göstermek icin kullanilacaktir.
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
Iste tamamlanmis XAML Kullanıcı Arabirimi isaretleme dili.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IronOCR_MAUI_Test.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IronOCR_MAUI_Test.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
Artik OCR fonksiyonelligi icin kod yazma zamani.
IronOCR kullanarak OCR icin Kodlar
MainPage.xaml.cs sınıf dosyasını açın ve aşağıdaki fonksiyonu yazın:
MainPage.xaml.cs
private async void IOCR(object sender, EventArgs e)
{
// Prompt user to select an image using FilePicker
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
// Get the full path of the selected image
var path = images.FullPath.ToString();
// Display the selected image in the Image control
OCRImage.Source = path;
// Create an IronTesseract object to perform OCR
var ocr = new IronTesseract();
// Perform OCR and extract text from the selected image
using (var input = new OcrInput())
{
input.AddImage(path); // Add image to the OCR input
OcrResult result = ocr.Read(input); // Perform OCR
string text = result.Text; // Extract text
// Display extracted text in the Editor control
outputText.Text = text;
}
}
private async void IOCR(object sender, EventArgs e)
{
// Prompt user to select an image using FilePicker
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
// Get the full path of the selected image
var path = images.FullPath.ToString();
// Display the selected image in the Image control
OCRImage.Source = path;
// Create an IronTesseract object to perform OCR
var ocr = new IronTesseract();
// Perform OCR and extract text from the selected image
using (var input = new OcrInput())
{
input.AddImage(path); // Add image to the OCR input
OcrResult result = ocr.Read(input); // Perform OCR
string text = result.Text; // Extract text
// Display extracted text in the Editor control
outputText.Text = text;
}
}
Private Async Sub IOCR(ByVal sender As Object, ByVal e As EventArgs)
' Prompt user to select an image using FilePicker
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
' Get the full path of the selected image
Dim path = images.FullPath.ToString()
' Display the selected image in the Image control
OCRImage.Source = path
' Create an IronTesseract object to perform OCR
Dim ocr = New IronTesseract()
' Perform OCR and extract text from the selected image
Using input = New OcrInput()
input.AddImage(path) ' Add image to the OCR input
Dim result As OcrResult = ocr.Read(input) ' Perform OCR
Dim text As String = result.Text ' Extract text
' Display extracted text in the Editor control
outputText.Text = text
End Using
End Sub
Yukardaki kodlari parcalayalim:
- Kod, kullanıcının cihazdan bir görüntü dosyası seçmesine izin vermek için
FilePickerkullanıyor. Dosya seçici yalnızca görüntülere izin verecek şekilde yapılandırılmıştır.
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var path = images.FullPath.ToString();
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
Dim path = images.FullPath.ToString()
Imagekontrolü, seçilen görüntüyü dosya yolunu kullanarak görüntüleyecek şekilde ayarlanmıştır.
OCRImage.Source = path;
OCRImage.Source = path;
OCRImage.Source = path
- OCR gerçekleştirmek için bir
IronTesseractnesnesi oluşturulur. Seçilen görüntü, birOcrInputnesnesine eklenir.Readyöntemi, görüntüden metin çıkarmak için çağrılır ve ardından bu metinEditorkontrolünde görüntülenir.
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
input.AddImage(path);
OcrResult result = ocr.Read(input);
string text = result.Text;
outputText.Text = text;
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
input.AddImage(path);
OcrResult result = ocr.Read(input);
string text = result.Text;
outputText.Text = text;
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
input.AddImage(path)
Dim result As OcrResult = ocr.Read(input)
Dim text As String = result.Text
outputText.Text = text
End Using
Çıktı
Projeyi calistirdiktan sonra, asagidaki arayuz gorunur. Dugmeye bastiginizda, herhangi bir konumdan bir görüntü/PDF secmenizi ister.
OCR Cikisi
Görüntü secildikten sonra, IronOCR görüntüyu isler ve taninan kelimeleri Editor kontrolunde görüntüler. Metni Editor kontrolunden kopyalayabilirsiniz.
OCR Görüntüsu
Sonuclar, IronOCR'un desenlerle kompleks görüntüleri işleme konusunda mükemmel bir is cikardigini ve dogru sonuclar gösterdigini gösteriyor. IronOCR, ozel modelleri kullanarak küçük detaylari tespit edebilir ve gerektiginde tam harfleri secebilir.
<{i:(Running the project in release mode with debugging attached might cause issues. Bu gibi durumlarda, proje baglantida belirtildigi gibi paketlenmemis bir .NET MAUI uygulamasi olarak yayinlanabilir, boylece uygulamanin duzgun calistigindan emin olunabilir.)}
Sonuç
Daha fazla okumak icin, IronOCR'u kullanarak görüntülerden metin okuma ile ilgili ek bilgiler saglayan bu eğitim kitina basvurabilirsiniz.
IronOCR, geliştirme amaclari icin ucretsizdir. Onu sadece $799'dan başlayan çok düşük bir fiyatla satın alabilirsiniz. Fiyat planini buradan kontrol edin.
Sıkça Sorulan Sorular
.NET MAUI uygulama geliştirmede ne için kullanılır?
.NET MAUI (Çoklu Platform Uygulama UI'si), tek kod tabanı ile platformlar arası uygulamalar geliştirmek için kullanılır, geliştiricilere Android, iOS ve Windows platformlarını hedefleme olanağı tanır.
Geliştiriciler, bir .NET MAUI uygulamasında nasıl OCR gerçekleştirebilir?
Geliştiriciler, IronOCR ile .NET MAUI uygulamasında OCR gerçekleştirebilir, IronOCR bir .NET OCR kütüphanesidir. IronOCR, görüntüleri ve PDF'leri aranabilir ve düzenlenebilir metinlere dönüştürmeyi sağlar.
.NET MAUI projesinde IronOCR'yi kurmanın adımları nelerdir?
.NET MAUI projesinde IronOCR'yi kurmak için, IronOCR kütüphanesini NuGet aracılığıyla yükleyin, ön yüzünüzü Visual Studio'da yapılandırın ve IronTesseract nesnesini kullanarak OCR gerçekleştirmek için gerekli C# kodunu uygulayın.
IronOCR, metin işlediğinde ne kadar doğru?
IronOCR, metin işleme sırasında %99 üzerinde yüksek doğruluk oranı sunar, bu da gelişmiş AI algoritmaları sayesinde Tesseract gibi diğer OCR çözümlerinden daha güvenilir hale getirir.
IronOCR birden fazla dili destekliyor mu?
Evet, IronOCR, varsayılan olarak İngilizce yüklü 125 uluslararası dili destekler. Ek diller, NuGet aracılığıyla veya belirli dil DLL'leri indirerek eklenebilir.
.NET MAUI uygulamasında OCR için bir resim dosyasını nasıl seçersiniz?
.NET MAUI uygulamasında, OCR için bir resim dosyasını seçmek için kullanıcıların cihazlarından metin çıkarmak üzere resim seçmelerine olanak tanıyan FilePicker sınıfını kullanabilirsiniz.
OCR sonuçlarını görüntülemede Editor kontrolünün rolü nedir?
.NET MAUI uygulamasında Editor kontrolü, IronOCR tarafından işlenmiş görüntülerden elde edilen metni görüntülemek için kullanılır, kullanıcılara OCR sonuçlarını görmeleri için bir arayüz sağlar.
IronOCR için geliştirme amaçlı kullanımda bir maliyet var mı?
IronOCR, geliştirme amaçlı kullanım için ücretsizdir. Ancak, üretim kullanımı için bir lisans gereklidir ve bunu rekabetçi bir fiyata edinebilirsiniz.
IronOCR'yi C# geliştiricileri için tercih edilen bir seçenek yapan nedir?
IronOCR, .NET uygulamaları ile sorunsuz entegrasyonu, yüksek doğruluk, hızı ve birden fazla dili desteklemesi nedeniyle birçok diğer OCR kütüphanesinden üstün olduğu için C# geliştiricileri tarafından tercih edilen bir seçenektir.
Geliştiriciler, .NET MAUI OCR uygulamalarının işlevselliğini nasıl artırabilirler?
Geliştiriciler, IronOCR tarafından sağlanan ek kaynakları keşfederek .NET MAUI OCR uygulamalarını geliştirebilir, kapsamlı belgelerinden ve desteğinden yararlanarak gelişmiş özellikleri uygulayabilirler.

