.NET MAUI OCR Kullanarak IronOCR
Giriş
Microsoft, .NET Framework ile platformlar arası uygulamalar oluşturmak için bir çerçeve olan .NET MAUI'yi (Multi-platform App UI) piyasaya sürdü. Bu, Android, iOS ve Windows'ta aynı kod tabanını kullanarak çalışacak kod yazmanıza olanak tanır; bu da zaman, kaynak ve çaba tasarrufu sağlar. .NET MAUI açık kaynaklıdır. .NET MAUI projesinin kaynak kodunu ve örneklerini GitHub üzerinde alabilirsiniz.
Bu Nasıl Yapılır Kılavuzunda, IronOCR kütüphanesini 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# kütüphanesini indirin
- MAUI projesinin ön yüzünü yapılandırın
- Görüntünün tam yolunu FilePicker sınıfını kullanarak iletin
- OCR işlemini gerçekleştirmek için
Readyöntemini çağırın - Çıkarılan metne erişip Text özelliği üzerinden görüntüleyin
IronOCR: .NET OCR kütüphanesi
IronOCR, geliştiricilerin projelerine Optik Karakter Tanıma (OCR) işlevselliğini kolayca entegre etmelerini sağlayan bir .NET OCR NuGet kütüphanesidir. IronOCR kullanarak, PDF belgeleri taranabilir ve veri kalitesinde herhangi bir kayıp olmadan aranabilir ve düzenlenebilir metin/veri haline dönüştürülebilir. Bu, kullanıcıların PDF belgelerinden ihtiyaç duydukları bilgileri bulmalarını ve gerektiğinde değişiklikler veya düzeltmeler yapmalarını kolaylaştırır.
IronOCR, Tesseract ikili dosyalarının herhangi bir platform için mevcut en gelişmiş versiyonudur. Artırılmış hız, doğruluk ve tüm Tesseract sürümlerini (Tesseract 3'ten Tesseract 5'e kadar) destekleyen yerel bir DLL/API ile kolay bir kurulum/indirme sunar.
IronOCR'un dil desteği kapsamlıdır ve 125 uluslararası dil kullanıcıların hizmetindedir. İngilizce dili, araç/DLL ile varsayılan olarak kurulur. Ancak, daha fazla dili kolayca NuGet üzerinden kurarak veya DLL'leri indirerek ekleyebilirsiniz.
Tesseract ile Karşılaştırma
IronOCR, özellikle C# geliştiricileri için tasarlanmıştır ve .NET uygulamaları ile sorunsuz bir şekilde entegre olur. Buna karşın, Tesseract genel bir OCR kütüphanesidir ve geliştiricilerin C# ile kullanmak için kendi sarmalayıcılarını yazmaları gerekir. Ayrıca, IronOCR, yenilikçi yapay zeka algoritmaları sayesinde diğer kütüphanelere kıyasla üstün doğruluk ve hız sunar.
IronOCR, kapsamlı dokümantasyon ve teknik destekle birlikte gelir, bu da yeni başlayan geliştiricilerin bile hızlıca başlamasını kolaylaştırır.
IronOCR, Tesseract'tan çok daha doğrudur. Aslında, %99'un üzerinde bir doğruluk oranına sahiptir; oysa Tesseract'ın doğruluk oranı yalnızca %70,2 - %92,9 civarındadır. IronOCR ve Tesseract karşılaştırması hakkında daha fazla bilgi ve destek almak için bu YouTube videosuna bakın.
OCR MAUI uygulaması oluşturma adımları
IronOCR kullanarak .NET MAUI çerçevesinde bir OCR uygulaması oluşturmak için bu adımları izleyin.
Ön Koşullar
.NET MAUI'de bir OCR uygulaması oluşturmak için, gerekli ön koşullar şunlardır:
- Visual Studio 2022 (En son sürüm)
- .NET 6 veya 7
- Visual Studio'da MAUI paketleri yüklü
- Visual Studio'da çalışan bir .NET MAUI projesi
IronOCR'u Kurun
İlk adım, IronOCR kütüphanesini NuGet Paket Yöneticisi Konsolu kullanarak yüklemektir. NuGet Paket Yöneticisi Konsolunu açmak için çözüm gezgininde sağ tıklayın ve IronOCR kütüphanesini yüklemek için şu komutu çalıştırın:
Install-Package IronOcr
Ön Yüz Tasarımı
Bu bölümde uygulamanın ön yüzünü tasarlayacağız. MainPage.xaml dosyasını açın.
MainPage.xaml
OCR için görüntü veya PDF belgesini seçmemize yardımcı olacak bir buton tasarlıyoruz. Düğmenin Clicked özelliği, bir sonraki bölümde tanımlayacağımız IOCR işlevini yürütmek üzere 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, Image adında bir OCRImage öğesi oluşturuyoruz. Bu görüntü kutusu seçilen dosyayı görüntüleyecek.
<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 denetimi oluşturuyoruz. Görüntü veya PDF belgesinden çıkarılan metni göstermek için kullanılacak.
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />
İşte tamamlanmış XAML Kullanıcı Arayüzü işaretlemesi.
<?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>
Şimdi, OCR işlevselliği için kod yazma zamanı.
IronOCR kullanarak OCR için Kod
MainPage.xaml.cs sınıf dosyasını açın ve aşağıdaki işlevi 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
Yukarıdaki kodu parçalayalım:
- Kod, kullanıcının cihazdan bir görüntü dosyası seçmesine olanak sağlamak için
FilePickerkullanır. 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()
Imagedenetimi, 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 işlemini gerçekleştirmek için bir
IronTesseractnesnesi oluşturulur. Seçilen resim, birOcrInputnesnesine eklenir. Görüntüden metin çıkarmak içinReadyöntemi çağrılır ve metin daha sonraEditordenetiminde 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 çalıştırdıktan sonra aşağıdaki UI görünecek. Butona tıkladığınızda, herhangi bir konumdan bir görüntü/PDF seçmeniz istenecek.
OCR Çıkışı
Görüntüyü seçtikten sonra IronOCR, görüntüyü işler ve Editor kontrolünde tanınan kelimeleri gösterir. Metni Editor kontrolünden kopyalayabilirsiniz.
OCR Görüntüsü
Sonuçlardan, IronOCR'un desenlerin bulunduğu karmaşık görüntüleri işlemek konusunda harika bir iş çıkardığı ve doğru sonuçlar gösterdiği anlaşılmaktadır. IronOCR, önceden eğitilmiş modellerini kullanarak gereken küçük ayrıntıları ve tam harfleri seçebilir.
<{i:(Running the project in release mode with debugging attached might cause issues. Bu tür durumlarda, aşağıdaki bağlantıda gösterildiği gibi uygulamanın düzgün çalışmasını sağlamak için projeyi paketlenmemiş bir .NET MAUI uygulaması olarak yayımlayabilirsiniz.)}>
Sonuç
Daha fazla bilgi için, IronOCR'u görüntülerden metin okumak için nasıl kullanacağınız hakkında ek bilgiler sağlayan bu öğreticiye başvurun.
IronOCR geliştirme amaçları için ücretsizdir. Sadece $999'den başlayan çok düşük bir fiyata satın alabilirsiniz. Fiyat planına şu bağlantıdan göz atın.
Sıkça Sorulan Sorular
.NET MAUI uygulama geliştirmede ne için kullanılır?
.NET MAUI (Multi-platform App UI), geliştiricilerin Android, iOS ve Windows platformlarını hedef alarak çapraz platform uygulamaları oluşturmasına olanak tanıyan tek bir kod tabanı sağlar.
Geliştiriciler bir .NET MAUI uygulamasında OCR'ı nasıl gerçekleştirebilir?
Geliştiriciler, bir .NET OCR kütüphanesi olan IronOCR'u entegre ederek bir .NET MAUI uygulamasında OCR gerçekleştirebilir. IronOCR, görüntülerin ve PDF'lerin aranabilir ve düzenlenebilir metne dönüştürülmesine olanak tanır.
.NET MAUI projesinde IronOCR'u kurma adımları nelerdir?
.NET MAUI projesinde IronOCR'u kurmak için, NuGet üzerinden IronOCR kütüphanesini yükleyin, Visual Studio'da ön yüzünüzü yapılandırın ve IronTesseract nesnesini kullanarak OCR gerçekleştirmek için gereken C# kodunu uygulayın.
IronOCR metin işlerken ne kadar doğru çalışır?
IronOCR metin işlerken %99'un üzerinde bir doğruluk oranı sağlar, bu da onu gelişmiş AI algoritmaları sayesinde Tesseract gibi diğer OCR çözümlerine kıyasla daha güvenilir kılar.
IronOCR birden fazla dili destekleyebilir mi?
Evet, IronOCR varsayılan olarak İngilizce yüklenmiş olarak gelir ve 125 uluslararası dili destekler. Ek dil paketleri NuGet aracılığıyla veya belirli dil DLL'lerini indirerek eklenebilir.
.NET MAUI uygulamasında OCR için bir görüntü dosyasını nasıl seçersiniz?
.NET MAUI uygulamasında, FilePicker sınıfını kullanarak OCR için bir görüntü dosyası seçebilir, kullanıcıların cihazlarından metin çıkarmak için görüntüleri seçmelerine olanak tanır.
OCR sonuçlarının görüntülenmesinde Editor kontrolünün rolü nedir?
.NET MAUI uygulamasındaki Editor kontrolü, IronOCR tarafından işlenen görüntülerden çıkarılan metni görüntülemek için kullanılır ve kullanıcılara OCR sonuçlarını görüntüleme arabirimi sağlar.
Geliştirme için IronOCR'u kullanmanın maliyeti var mı?
IronOCR geliştirme amaçlı kullanımı için ücretsizdir. Ancak, üretimde kullanım için rekabetçi fiyatlarla elde edilebilen bir lisans gereklidir.
IronOCR C# geliştiricileri için neden tercih edilen bir seçenektir?
IronOCR, .NET uygulamaları ile kesintisiz entegrasyon, yüksek doğruluk, hız ve birden fazla dili desteklemesi nedeniyle C# geliştiricileri için tercih edilen bir seçenektir ve birçok diğer OCR kütüphanesine üstündür.
Geliştiriciler .NET MAUI OCR uygulamalarının işlevselliğini nasıl artırabilir?
Geliştiriciler, IronOCR'un sağladığı ek kaynakları keşfederek, kapsamlı belgelerinden ve desteklerinden faydalanarak gelişmiş özellikler uygulayarak .NET MAUI OCR uygulamalarının işlevselliğini artırabilir.

