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

.NET MAUI OCR IronOCR Kullanılarak

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

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.

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:

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

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

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

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

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

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

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:

.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

Yukardaki kodlari parcalayalim:

  • Kod, kullanıcının cihazdan bir görüntü dosyası seçmesine izin vermek için FilePicker kullanı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()
$vbLabelText   $csharpLabel
  • Image kontrolü, 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 gerçekleştirmek için bir IronTesseract nesnesi oluşturulur. Seçilen görüntü, bir OcrInput nesnesine eklenir. Read yöntemi, görüntüden metin çıkarmak için çağrılır ve ardından bu metin Editor kontrolü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
$vbLabelText   $csharpLabel

Çıktı

Projeyi calistirdiktan sonra, asagidaki arayuz gorunur. Dugmeye bastiginizda, herhangi bir konumdan bir görüntü/PDF secmenizi ister.

.NET MAUI OCR Tutorial Using IronOCR - Figure 3: OCR Cikisi

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.

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

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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
İnceleyen
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluk Ekibi
Jeff, aynı zamanda .NET ve Visual Studio ekipleri için Baş Program Yöneticisi'dir. Microsoft geliştirici etkinlikleri (Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit) için atölye çalışmaları, sunumlar yazar ve içerik planlar ve haftada iki kez yayınlanan 'Fritz ve Arkadaşları' canlı yayınının ev sahibidir.
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.