.NET MAUI'de Android Üzerinde OCR Uygulama Yöntemleri

This article was translated from English: Does it need improvement?
Translated
View the article in English
Android related to .NET MAUI'de Android Üzerinde OCR Uygulama Yöntemleri

.NET MAUI (Çok platformlu Uygulama UI), .NET kullanarak Android, iOS, macOS ve Windows için çapraz platformlu uygulamalar geliştirmek üzere tasarlanmış Xamarin.Forms çerçevesinin evrimidir. .NET MAUI, birden fazla platformda çalışabilen yerel kullanıcı arayüzleri oluşturma sürecini basitleştirmeyi amaçlar.

IronOcr.Android paketi, Android'e OCR desteği getirir!

IronOCR Android Paketi

IronOcr.Android paketi, .NET çapraz platform projeleri aracılığıyla Android cihazlarda OCR özelliklerini etkinleştirir. Vanilla IronOCR paketi gerekli değildir.

Install-Package IronOcr.Android
PDF için C# NuGet Kütüphanesi

NuGet ile yükleyin

Install-Package IronOcr.Android

.NET MAUI projesi oluştur

Visual Studio'yu açın ve "Yeni proje oluştur"a tıklayın. MAUI arayın, .NET MAUI Uygulamasını seçin ve "İleri" tıklayın.

.NET MAUI Uygulaması projesi oluşturma

IronOcr.Android kütüphanesini dahil et

Kütüphane çeşitli şekillerde eklenebilir. Belki de en kolay yol NuGet kullanmaktır.

  1. Visual Studio içinde "Dependencies" üzerine sağ tıklayın ve "NuGet Paketlerini Yönet..." seçeneğini seçin.
  2. "Gözat" sekmesini seçin ve "IronOcr.Android" arayın.
  3. "IronOcr.Android" paketini seçip "Yükle" üzerine tıklayın.

IronOcr.Android paketini indirin

Diğer platformlarla sorun yaşamamak için csproj dosyanızı yalnızca Android platformunu hedefleyerek paketi dahil edecek şekilde değiştirin. Bunu yapmak için:

  1. Proje üzerine sağ tıklayın ve "Proje Dosyasını Düzenle" seçeneğini seçin.
  2. Yeni bir ItemGroup elementi oluşturun:

    <ItemGroup Condition="$(TargetFramework.Contains('android')) == true">
    </ItemGroup>
    <ItemGroup Condition="$(TargetFramework.Contains('android')) == true">
    </ItemGroup>
    XML
  3. Yeni oluşturduğumuz ItemGroup içine "IronOcr.Android" PackageReference taşırız.

Yukarıdaki adımlar, "IronOcr.Android" paketinin örneğin iOS platformları için kullanılmasını engelleyecektir (bu amaçla IronOcr.iOS yükleyin).

"MainActivity.cs" Düzenle

  • Platformlar -> Android dizininden "MainActivity.cs" dosyasını açın.
  • MainActivity yöntemini ekleyin ve Initialize yöntemini çağırın.
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
using IronOcr;

namespace MAUIIronOCRAndroidSample
{
    [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
    public class MainActivity : MauiAppCompatActivity
    {
        public MainActivity()
        {
            // Initialize IronTesseract for OCR purposes
            IronTesseract.Initialize(this);
        }
    }
}
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
using IronOcr;

namespace MAUIIronOCRAndroidSample
{
    [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
    public class MainActivity : MauiAppCompatActivity
    {
        public MainActivity()
        {
            // Initialize IronTesseract for OCR purposes
            IronTesseract.Initialize(this);
        }
    }
}
Imports Android.App
Imports Android.Content.PM
Imports Android.Runtime
Imports Android.OS
Imports IronOcr

Namespace MAUIIronOCRAndroidSample
	<Activity(Theme := "@style/Maui.SplashTheme", MainLauncher := True, ConfigurationChanges := ConfigChanges.ScreenSize Or ConfigChanges.Orientation Or ConfigChanges.UiMode Or ConfigChanges.ScreenLayout Or ConfigChanges.SmallestScreenSize Or ConfigChanges.Density)>
	Public Class MainActivity
		Inherits MauiAppCompatActivity

		Public Sub New()
			' Initialize IronTesseract for OCR purposes
			IronTesseract.Initialize(Me)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

"MainPage.xaml" Düzenle

OCR sonucunu göstermek için bir düğme ve bir etiket görüntülemek üzere XAML dosyasını düzenleyin. Örneğin:

<?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="MAUIIronOCRAndroidSample.MainPage">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button
            Text="Import File"
            Clicked="ReadFileOnImport"
            Grid.Row="0"
            HorizontalOptions="Center"
            Margin="20, 20, 20, 10"/>

        <ScrollView
            Grid.Row="1"
            BackgroundColor="LightGray"
            Padding="10"
            Margin="10, 10, 10, 30">
            <Label x:Name="OutputText"/>
        </ScrollView>
    </Grid>

</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="MAUIIronOCRAndroidSample.MainPage">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button
            Text="Import File"
            Clicked="ReadFileOnImport"
            Grid.Row="0"
            HorizontalOptions="Center"
            Margin="20, 20, 20, 10"/>

        <ScrollView
            Grid.Row="1"
            BackgroundColor="LightGray"
            Padding="10"
            Margin="10, 10, 10, 30">
            <Label x:Name="OutputText"/>
        </ScrollView>
    </Grid>

</ContentPage>
XML

"MainPage.xaml.cs" Düzenle

İlk olarak, IronTesseract nesnesinin bir örneğini oluşturun. Aşağıdaki kodda gösterildiği gibi, IronTesseract'nin sınıf içinde bir kez başlatıldığından emin olun. Bunu bir yöntem içinde örneklemek etkisiz olabilir ve beklenmedik hatalara yol açabilir.

Ardından, FilePicker.PickAsync yöntemini kullanarak bir dosya seçin, ardından FileResult'tan bir okuma akışı açın. Yeni bir OcrInput nesnesi oluşturun ve görüntüyü bu nesneye yükleyin. Görüntü üzerinde OCR gerçekleştirin ve metni geri alın. Sonuçlanan metni nihayet bir etikete gösterin.

using IronOcr;
using Microsoft.Maui.Controls;
using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;

namespace MAUIIronOCRAndroidSample
{
    public partial class MainPage : ContentPage
    {
        // Initialize IronTesseract once in a class
        private readonly IronTesseract ocrTesseract = new IronTesseract();

        public MainPage()
        {
            InitializeComponent();
            // Apply License key if required
            IronOcr.License.LicenseKey = "IRONOCR.MYLICENSE.KEY.1EF01";
        }

        private async void ReadFileOnImport(object sender, EventArgs e)
        {
            try
            {
                // Configure the file picker
                var options = new PickOptions
                {
                    PickerTitle = "Please select a file"
                };

                // Await user's file selection
                var result = await FilePicker.PickAsync(options);
                if (result != null)
                {
                    using var stream = await result.OpenReadAsync();
                    // Instantiate OcrInput
                    using var ocrInput = new OcrInput();
                    // Load image stream for OCR processing
                    ocrInput.AddImage(stream);
                    // Perform OCR
                    var ocrResult = ocrTesseract.Read(ocrInput);
                    // Display extracted text
                    OutputText.Text = ocrResult.Text;
                }
            }
            catch (Exception ex)
            {
                // Log and handle exceptions
                Debug.WriteLine(ex);
            }
        }
    }
}
using IronOcr;
using Microsoft.Maui.Controls;
using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;

namespace MAUIIronOCRAndroidSample
{
    public partial class MainPage : ContentPage
    {
        // Initialize IronTesseract once in a class
        private readonly IronTesseract ocrTesseract = new IronTesseract();

        public MainPage()
        {
            InitializeComponent();
            // Apply License key if required
            IronOcr.License.LicenseKey = "IRONOCR.MYLICENSE.KEY.1EF01";
        }

        private async void ReadFileOnImport(object sender, EventArgs e)
        {
            try
            {
                // Configure the file picker
                var options = new PickOptions
                {
                    PickerTitle = "Please select a file"
                };

                // Await user's file selection
                var result = await FilePicker.PickAsync(options);
                if (result != null)
                {
                    using var stream = await result.OpenReadAsync();
                    // Instantiate OcrInput
                    using var ocrInput = new OcrInput();
                    // Load image stream for OCR processing
                    ocrInput.AddImage(stream);
                    // Perform OCR
                    var ocrResult = ocrTesseract.Read(ocrInput);
                    // Display extracted text
                    OutputText.Text = ocrResult.Text;
                }
            }
            catch (Exception ex)
            {
                // Log and handle exceptions
                Debug.WriteLine(ex);
            }
        }
    }
}
Imports IronOcr
Imports Microsoft.Maui.Controls
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Threading.Tasks

Namespace MAUIIronOCRAndroidSample
	Partial Public Class MainPage
		Inherits ContentPage

		' Initialize IronTesseract once in a class
		Private ReadOnly ocrTesseract As New IronTesseract()

		Public Sub New()
			InitializeComponent()
			' Apply License key if required
			IronOcr.License.LicenseKey = "IRONOCR.MYLICENSE.KEY.1EF01"
		End Sub

		Private Async Sub ReadFileOnImport(ByVal sender As Object, ByVal e As EventArgs)
			Try
				' Configure the file picker
				Dim options = New PickOptions With {.PickerTitle = "Please select a file"}

				' Await user's file selection
				Dim result = Await FilePicker.PickAsync(options)
				If result IsNot Nothing Then
					Dim stream = Await result.OpenReadAsync()
					' Instantiate OcrInput
					Dim ocrInput As New OcrInput()
					' Load image stream for OCR processing
					ocrInput.AddImage(stream)
					' Perform OCR
					Dim ocrResult = ocrTesseract.Read(ocrInput)
					' Display extracted text
					OutputText.Text = ocrResult.Text
				End If
			Catch ex As Exception
				' Log and handle exceptions
				Debug.WriteLine(ex)
			End Try
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Son olarak, .csproj dosyasında, projeyi yalnızca Android için derlediğinizden emin olun. Eklediğimiz paket yalnızca Android için olduğundan, projeyi tüm platformlar için derlemek başarısız olacaktır.

Projeyi Çalıştırın

Proje nasıl çalıştırılacağını ve OCR işlemi nasıl yapılacağını gösterecektir.

Execute .NET MAUI App project

.NET MAUI Uygulama Projesi İndirin

Bu kılavuzun tüm kodunu indirebilirsiniz. Visual Studio'da .NET MAUI Uygulama projesi olarak açabileceğiniz sıkıştırılmış bir dosya olarak gelir.

Projeyi indirmek için buraya tıklayın.

Avalonia'da IronOcr.Android Kullanımı

MAUI'ye benzer şekilde, IronOcr.Android, yukarıda açıklanan aynı kurulumla bir Avalonia projesinde kullanılabilir.

iOS üzerinde OCR yapmak isterseniz, daha fazla bilgi edinmek için şu makaleye gidin: ".NET MAUI'de iOS üzerinde OCR Yapma Yöntemleri"

Sıkça Sorulan Sorular

.NET MAUI uygulamasında Android'de OCR işlemini nasıl gerçekleştirebilirim?

Android'de .NET MAUI kullanarak OCR gerçekleştirmek için, Visual Studio ile NuGet üzerinden IronOcr.Android paketini yükleyin. IronTesseract sınıfını kullanarak görüntüleri işleyin ve metin çıkarın. Projenizin Android'i hedefleyecek şekilde yapılandırıldığından emin olmak için .csproj dosyasını uygun şekilde değiştirin.

IronOcr.Android paketinin amacı nedir?

IronOcr.Android paketi, .NET MAUI projeleri kapsamında Android cihazlarda OCR yeteneklerini sunmak üzere özel olarak tasarlanmıştır. Tekstil tanıma özelliklerinin Android'i hedefleyen çoklu platform uygulamalarına entegrasyonunu basitleştirir.

.NET MAUI projesini Android OCR için nasıl yapılandırırım?

IronOcr.Android paketini NuGet üzerinden yükleyerek .NET MAUI projenizi yapılandırın. .csproj dosyasını, Android'i hedef alacak şekilde yeniden gruplandırısız bir UnsurGrubu oluşturup IronOcr.Android PackageReference'yı içine taşıyarak ayarlayın. Bu, diğer platformlar için oluşturma sorunlarını önler.

OCR kurulumu için MainActivity.cs'de hangi değişiklikler gereklidir?

Platformlar -> Android altında bulunan MainActivity.cs dosyasında, MainActivity yöntemini ekleyin ve IronTesseract'tan Initialize yöntemini çağırın. Bu, görüntülerden metin işleme yeteneklerini kurar.

OCR özelliklerini entegre etmek için MainPage.xaml'ı nasıl düzenlerim?

MainPage.xaml'ı, dosya yükleme için bir düğme ve OCR sonuçlarını görüntülemek için bir etiket ekleyerek düzenleyin. Kullanıcı girdiğini etkili bir şekilde yönetmek için OCR işlem mantığıyla etkileşim kuracak gerekli kullanıcı arayüzü unsurlarını tanımlayın.

OCR işlemi sırasında hata ile karşılaşırsam ne yapmalıyım?

Try-catch bloklarını OCR işleme kodunuzun etrafına yerleştirerek istisnaları karşılayın. Hataları tanımlamanıza ve sorunları çözmenize yardımcı olması için Debug.WriteLine veya başka bir kayıt tutma mekanizmasını kullanarak herhangi bir hatayı kaydedin.

IronOcr.Android paketini Avalonia projelerinde kullanmak mümkün müdür?

Evet, IronOcr.Android paketi, .NET MAUI'deki gibi benzer bir kurulum işlemiyle Avalonia projelerinde kullanılabilir. OCR işlevselliğini etkinleştirmek için proje yapılandırmasını buna göre ayarlayın.

Android OCR için .NET MAUI kullanarak tamamlanmış bir örnek projeyi nerede bulabilirim?

Android OCR için .NET MAUI ile kullanarak IronOCR kütüphanesiyle tamamlanmış bir örnek proje, rehberde sağlanan bir bağlantı ile indirilebilir. Proje, Visual Studio'da açılmaya hazır bir şekilde sıkıştırılmış dosya olarak gelir.

IronOcr.Android paketi, çoklu platform projesinde yalnızca Android'i nasıl hedef alır?

IronOcr.Android paketinin yalnızca Android'i hedeflemesini sağlamak için, .csproj dosyasını Android için koşullu bir UnsurGrubu oluşturarak ayarlayın ve IronOcr.Android PackageReference'yi bu grubun içine taşıyın. Bu, diğer platformlar için oluştururken çatışmaları önler.

IronOCR ile OCR sonuçlarının doğruluğunu nasıl artırırım?

IronOCR ile OCR doğruluğunu artırmak için yüksek kaliteli giriş görüntülerini sağlamaya, uygun dil paketlerini kullanmaya ve kütüphanenin görüntü ön işleme özelliklerinden yararlanmaya özen gösterin.

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