IronOCRを使用した.NET MAUI OCR
はじめに
Microsoft は、.NET Framework を使用してクロスプラットフォーム アプリケーションを構築するためのフレームワークである .NET MAUI (Multi-platform App UI) をリリースしました。 同じコードベースを使用して Android、iOS、Windows で実行されるコードを記述できるため、時間、リソース、労力を節約できます。 .NET MAUI はオープン ソースです。 .NET MAUI プロジェクトのソース コードとサンプルはGitHubで入手できます。
このハウツー ガイドでは、IronOCR ライブラリを使用して .NET MAUI 上で OCR プロセッサ アプリを作成する方法を例とともに学習します。
.NET MAUIでOCRを実行する方法
- .NET MAUIでOCRを実行するためのC#ライブラリをダウンロードする
- MAUIプロジェクトのフロントエンドを構成する
- FilePickerクラスを使用して画像のフルパスを渡します
Readメソッドを呼び出して、画像に対してOCRを実行します。- Textプロパティにアクセスして抽出したテキストを表示
IronOCR: .NET OCR ライブラリ
IronOCR は、開発者が光学式文字認識 (OCR) 機能をプロジェクトに簡単に統合できるようにする .NET OCR NuGet ライブラリです。 IronOCR を使用すると、データ品質を損なうことなく、PDF ドキュメントをスキャンして、検索および編集可能なテキスト/データに変換できます。 これにより、ユーザーは PDF ドキュメントから必要な情報を簡単に見つけて、必要に応じて変更や修正を行うことができます。
IronOCR は、あらゆるプラットフォームで利用可能な Tesseract バイナリの最も高度なビルドです。 速度と精度が向上し、1 回の簡単なインストール/ダウンロードで Tesseract のすべてのバージョン (Tesseract 3 から Tesseract 5 まで) をサポートするネイティブ DLL/API が提供されます。
IronOCR の言語サポートは広範囲にわたり、ユーザーは 125 の国際言語を利用できます。 ツール/DLL では、英語がデフォルトでインストールされます。 ただし、NuGet 経由でインストールするか、DLL をダウンロードすることで、簡単に言語を追加できます。
Tesseractとの比較
IronOCR は C# 開発者向けに特別に設計されており、.NET アプリケーションとシームレスに統合されます。 対照的に、Tesseract は汎用 OCR ライブラリであり、開発者は C# で使用するために独自のラッパーを作成する必要があります。 さらに、IronOCR は革新的な人工知能アルゴリズムにより、他のライブラリに比べて優れた精度と速度を提供します。
IronOCR には包括的なドキュメントとテクニカル サポートが付属しており、初心者の開発者でもすぐに使い始めることができます。
IronOCR は Tesseract よりもはるかに正確です。 実際、その精度は 99% を超えていますが、Tesseract の精度は 70.2% ~ 92.9% 程度に過ぎません。 IronOCR と Tesseract の比較に関する詳細情報とサポートについては、このYouTube ビデオをご覧ください。
OCR MAUIアプリを作成する手順
IronOCR を使用して .NET MAUI フレームワークで OCR アプリを作成するには、次の手順に従います。
前提条件
.NET MAUI で OCR アプリを作成するための前提条件は次のとおりです。
- Visual Studio 2022(最新バージョン)
- .NET 6 または 7
- Visual StudioにインストールされたMAUIパッケージ
- Visual Studioで実行される.NET MAUIプロジェクト
Google OCRのインストール
最初のステップは、NuGet パッケージ マネージャー コンソールを使用して IronOCR ライブラリをインストールすることです。 ソリューション エクスプローラーを右クリックして NuGet パッケージ マネージャー コンソールを開き、次のコマンドを実行して IronOCR ライブラリをインストールします。
Install-Package IronOcr
フロントエンドデザイン
このセクションでは、アプリケーションのフロントエンドを設計します。 MainPage.xamlファイルを開きます。

MainPage.xaml
OCR の対象となる画像または PDF ドキュメントを選択するのに役立つボタンを指定します。 ボタンのClickedプロパティは、次のセクションで定義するIOCR関数を実行するように設定されています。
<Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" /><Button
x:Name="OCR"
Text="Click to OCR"
Clicked="IOCR"
HorizontalOptions="Center" />ここでは、 OCRImageという名前のImage要素を作成します。 この画像ボックスには選択したファイルが表示されます。
<Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" /><Image
x:Name="OCRImage"
SemanticProperties.Description="Selected Image"
HeightRequest="300"
HorizontalOptions="Center" />次に、 Editorコントロールを作成します。 画像または PDF ドキュメントから抽出されたテキストを表示するために使用されます。
<Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" /><Editor
x:Name="outputText"
HorizontalOptions="Center"
WidthRequest="600"
HeightRequest="300" />完成した XAML ユーザー インターフェイス マークアップを次に示します。
<?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>ここで、OCR 機能のコードを記述します。
IronOCRを使用したOCR用コード
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上記のコードを分解してみましょう。
- このコードは
FilePickerを使用して、ユーザーがデバイスから画像ファイルを選択できるようにしています。ファイルピッカーは画像のみを許可するように設定されています。
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()Imageコントロールは、選択した画像をそのファイル パスを使用して表示するように設定されています。
OCRImage.Source = path;OCRImage.Source = path;OCRImage.Source = path- OCR を実行するために
IronTesseractオブジェクトが作成されます。 選択した画像がOcrInputオブジェクトに追加されます。Readメソッドが呼び出され、画像からテキストが抽出され、Editorコントロールに表示されます。
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出力
プロジェクトを実行すると、以下のUIが表示されます。ボタンをクリックすると、任意の場所から画像/PDFを選択するように求められます。

OCR出力
画像を選択すると、IronOCR は画像を処理し、認識された単語をエディター コントロールに表示します。 エディター コントロールからテキストをコピーできます。

OCR画像
結果から、IronOCR はパターンを含む複雑な画像の処理に優れたパフォーマンスを発揮し、正確な結果を示していることがわかります。 IronOCR は、事前にトレーニングされたモデルを使用して、細かい部分を検出し、必要な文字を正確に選択することができます。
<{i:(デバッグを接続したリリース モードでプロジェクトを実行すると、問題が発生する可能性があります。 このような場合は、以下のリンクに示すように、プロジェクトをパッケージ化されていない .NET MAUI アプリとして公開し、アプリが適切に動作することを確認できます。)}>
結論
さらに詳しく知りたい場合は、IronOCR を使用して画像からテキストを読み取る方法についての追加情報を提供するこのチュートリアルを参照してください。
IronOCR は開発目的では無料です。 わずか$799から非常に低価格でご購入いただけます。 料金プランについてはこちらをご覧ください。
よくある質問
.NET MAUIはアプリ開発において何に使用されますか?
.NET MAUI(マルチプラットフォームアプリUI)は、単一のコードベースでクロスプラットフォームアプリケーションを構築するために使用され、開発者がAndroid、iOS、およびWindowsプラットフォームをターゲットにできるようにします。
.NET MAUIアプリでOCRをどのように実行できますか?
開発者は、.NET OCRライブラリであるIronOCRを統合することで、.NET MAUIアプリでOCRを実行できます。IronOCRは画像やPDFを検索可能で編集可能なテキストに変換します。
.NET MAUIプロジェクトにおいてIronOCRをセットアップする手順は何ですか?
IronOCRを.NET MAUIプロジェクトにセットアップするには、NuGetを介してIronOCRライブラリをインストールし、Visual Studioでフロントエンドを構成し、IronTesseractオブジェクトを使用してOCRを実行するために必要なC#コードを実装します。
テキスト処理時のIronOCRの精度はどれくらいですか?
IronOCRはテキスト処理時に99%以上の高い精度を提供し、その進化したAIアルゴリズムにより他のOCRソリューションのようなTesseractよりも信頼性があります。
IronOCRは複数の言語に対応できますか?
はい、IronOCRは125の国際言語をサポートしており、英語はデフォルトでインストールされています。その他の言語はNuGetまたは特定の言語DLLをダウンロードすることで追加できます。
.NET MAUIアプリでOCRのために画像ファイルをどのように選択しますか?
.NET MAUIアプリでは、FilePickerクラスを使用してOCR用の画像ファイルを選択できます。これにより、ユーザーはデバイスから画像を選択してテキストを抽出できます。
OCR結果を表示する際のEditor コントロールの役割は何ですか?
.NET MAUIアプリのEditor コントロールは、IronOCRによって処理された画像から抽出されたテキストを表示するために使用され、ユーザーがOCR結果を確認できるインターフェースを提供します。
開発用にIronOCRを使用する際に費用はかかりますか?
IronOCRは開発目的には無料で使用できます。ただし、商用利用にはライセンスが必要で、競争力のある価格で入手可能です。
IronOCRがC#開発者に選ばれる理由は何ですか?
IronOCRは、そのシームレスな.NETアプリケーションとの統合、高精度、速度、および複数言語のサポートにより、多くの他のOCRライブラリよりも優れているため、C#開発者にとって優れた選択肢です。
開発者は自分の.NET MAUI OCRアプリの機能をどのように強化できますか?
開発者は、IronOCRが提供する追加リソースを探求し、その包括的なドキュメントとサポートを活用して高度な機能を実装することで、.NET MAUI OCRアプリを強化できます。







