IronOCRコンピュータビジョン使用ガイド
イントロダクション
IronOCRは、OpenCVを利用して、画像内にテキストが存在する領域をコンピュータビジョンで検出します。 これは、多くのノイズが含まれている画像、異なる場所にテキストがある画像、およびテキストが湾曲している画像に役立ちます。 IronOCRでのコンピュータビジョンの使用により、テキスト領域の位置を特定し、その後Tesseractを使用してそれらの領域の読み取りを試みます。
IronOCRを始めましょう
今日から無料トライアルでIronOCRをあなたのプロジェクトで使い始めましょう。
NuGetパッケージを介したIronOCR.ComputerVisionのインストール
IronOCRでコンピュータビジョンを実行するOpenCVメソッドは、通常のIronOCR NuGetパッケージで確認できます。
これらのメソッドを使用するには、ソリューションに IronOcr.ComputerVision
の NuGet インストールが必要です。インストールされていない場合は、ダウンロードのプロンプトが表示されます。
- Windows:
IronOCR.ComputerVision.Windows
- Linux:
IronOcr.ComputerVision.Linux
-
macOS:
IronOCR.ComputerVision.MacOS
macOS ARM:
IronOcr.ComputerVision.MacOS.ARM
NuGetパッケージマネージャーを使用してインストールするか、以下のコードをパッケージマネージャーコンソールに貼り付けてください:
PM> Install-Package IronOcr.ComputerVision.Windows
これは、IronOCRコンピュータービジョンをモデルファイルと共に使用するために必要なアセンブリを提供します。
機能およびAPI
このチュートリアルには、コード例がさらに下に含まれています。 以下は現在利用可能なメソッドの一般的な概要です:
メソッド | 説明 |
---|---|
テキスト領域を検索 | テキスト要素を含む領域を検出し、Tesseractに対してテキストが検出された領域内のみでテキストを検索するよう指示します。 |
複数のテキスト領域を見つける | テキスト要素が含まれている領域を検出し、テキスト領域に基づいてページを個別の画像に分割します。 |
テキスト領域を取得 | 画像をスキャンし、テキスト領域のリストを `List` として返します。 |
コード例
テキスト領域を検索
FindTextRegion
の使用は、コンピュータビジョンを使用して、OcrInputオブジェクトの各ページにテキスト要素を含む領域を検出します。
:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-1.cs
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage("/path/file.png");
input.FindTextRegion();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage("/path/file.png")
input.FindTextRegion()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
カスタムパラメータを指定して呼び出すこともできます:
:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-2.cs
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage("/path/file.png");
input.FindTextRegion(Scale: 2.0, DilationAmount: 20, Binarize: true, Invert: true);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage("/path/file.png")
input.FindTextRegion(Scale:= 2.0, DilationAmount:= 20, Binarize:= True, Invert:= True)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
このオーバーロードを使用して、テキスト領域を矩形として返すこともできる:
:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-3.cs
using IronOcr;
using var input = new OcrInput();
// Load at least one image
input.LoadImage("/path/file.png");
input.FindTextRegion(Scale: 2.0, Binarize: true);
Imports IronOcr
Private input = New OcrInput()
' Load at least one image
input.LoadImage("/path/file.png")
input.FindTextRegion(Scale:= 2.0, Binarize:= True)
複数のテキスト領域を見つける
FindMultipleTextRegions
の使用は、OcrInput
オブジェクトの全ページを取り込み、コンピュータビジョンを使用してテキスト要素を含む領域を検出し、テキスト領域に基づいて入力を別々の画像に分割します:
:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-4.cs
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage("/path/file.png");
input.FindMultipleTextRegions();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage("/path/file.png")
input.FindMultipleTextRegions()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
カスタムパラメータを指定して呼び出すこともできます:
:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-5.cs
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load at least one image
input.LoadImage("/path/file.png");
input.FindMultipleTextRegions(Scale: 2.0, DilationAmount: -1, Binarize: true, Invert: false);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr
Private ocr = New IronTesseract()
Private input = New OcrInput()
' Load at least one image
input.LoadImage("/path/file.png")
input.FindMultipleTextRegions(Scale:= 2.0, DilationAmount:= -1, Binarize:= True, Invert:= False)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
FindMultipleTextRegions
の別のオーバーロードメソッドはOCRページを受け取り、その上の各テキスト領域ごとに1つのOCRページのリストを返します。
:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-6.cs
using IronOcr;
using System.Collections.Generic;
using System.Linq;
int pageIndex = 0;
using var input = new OcrInput();
// Load at least one image
input.LoadImage("/path/file.png");
var selectedPage = input.GetPages().ElementAt(pageIndex);
List<OcrInputPage> textRegionsOnPage = selectedPage.FindMultipleTextRegions();
Imports IronOcr
Imports System.Collections.Generic
Imports System.Linq
Private pageIndex As Integer = 0
Private input = New OcrInput()
' Load at least one image
input.LoadImage("/path/file.png")
Dim selectedPage = input.GetPages().ElementAt(pageIndex)
Dim textRegionsOnPage As List(Of OcrInputPage) = selectedPage.FindMultipleTextRegions()
テキスト領域を取得
GetTextRegions
の使用により、ページ内でテキストが検出されたクロップ領域のリストを返します:
:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-7.cs
using IronOcr;
using IronSoftware.Drawing;
using System.Collections.Generic;
using System.Linq;
int pageIndex = 0;
using var input = new OcrInput();
// Load at least one image
input.LoadImage("/path/file.png");
var selectedPage = input.GetPages().ElementAt(pageIndex);
var regions = selectedPage.GetTextRegions();
Imports IronOcr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Imports System.Linq
Private pageIndex As Integer = 0
Private input = New OcrInput()
' Load at least one image
input.LoadImage("/path/file.png")
Dim selectedPage = input.GetPages().ElementAt(pageIndex)
Dim regions = selectedPage.GetTextRegions()