NET Maui'de OCR Nasıl Yapılır | IronOCR

.NET MAUI OCR Kullanarak IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

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:

  1. Visual Studio 2022 (En son sürüm)
  2. .NET 6 veya 7
  3. Visual Studio'da MAUI paketleri yüklü
  4. 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.

.NET MAUI OCR Tutorial Using IronOCR - Figure 1: MainPage.xaml

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" />
XML

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" />
XML

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" />
XML

İş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>
XML

Ş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:

.NET MAUI OCR Tutorial Using IronOCR - Figure 2: MainPage.xaml.cs

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
$vbLabelText   $csharpLabel

Yukarıdaki kodu parçalayalım:

  • Kod, kullanıcının cihazdan bir görüntü dosyası seçmesine olanak sağlamak için FilePicker kullanı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()
$vbLabelText   $csharpLabel
  • Image denetimi, 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
$vbLabelText   $csharpLabel
  • OCR işlemini gerçekleştirmek için bir IronTesseract nesnesi oluşturulur. Seçilen resim, bir OcrInput nesnesine eklenir. Görüntüden metin çıkarmak için Read yöntemi çağrılır ve metin daha sonra Editor denetiminde 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
$vbLabelText   $csharpLabel

Çı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.

.NET MAUI OCR Tutorial Using IronOCR - Figure 3: OCR Çıkışı

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.

.NET MAUI OCR Tutorial Using IronOCR - Figure 4: OCR Görüntüsü

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.

Curtis Chau
Teknik Yazar

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ı...

Daha Fazla Oku
Gözden Geçiren
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluğu Ekibi
Jeff, .NET ve Visual Studio ekipleri için bir Baş Program Yöneticisidir. .NET Conf sanal konferans serisinin baş yapımcısıdır ve haftada iki kez canlı yayınlanan 'Fritz and Friends' adlı bir akış programı sunar; burada izleyicilerle birlikte teknoloji konuşur ve kod yazar. Jeff, en büyük Microsoft geliştirici etkinlikleri için atölyeler, sunumlar ve içerik planları yazar, Microsoft Build, Microsoft Ignite, .NET Conf ve Microsoft MVP Summit gibi etkinliklerde yer alır.
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.