C#でテキストを見つけるためにコンピュータビジョンを使用する方法

C# でコンピュータービジョンを使ってテキストを検索する方法

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

IronOCR は OpenCV を利用し、Computer Vision を使用して画像内のテキストが存在する領域を検出します。 これは、ノイズの多い画像、さまざまな場所にテキストがある画像、テキストが歪んでいる画像に役立ちます。 IronOCR のコンピューター ビジョンを使用すると、テキスト領域が存在する場所が特定され、Tesseract を使用してそれらの領域の読み取りが試行されます。

クイックスタート: 主要なテキスト領域の検出とOCR

この例では、いかに簡単に開始できるかを示します。画像を読み込み、IronOCR の Computer Vision でFindTextRegion()を使用してメインのテキスト領域を自動検出し、すぐに.Read(...)を実行してテキストを抽出します。 画像から OCR 出力に至るまでに必要なのは、たった 1 行だけです。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronOCR をインストールします

    PM > Install-Package IronOcr

  2. このコード スニペットをコピーして実行します。

    using var result = new IronTesseract().Read(new OcrInput().LoadImage("image.png").FindTextRegion());
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronOCR を使い始めましょう
    arrow pointer

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 パッケージ マネージャーを使用してインストールするか、パッケージ マネージャー コンソールに次の内容を貼り付けます。

Install-Package IronOcr.ComputerVision.Windows

これにより、モデル ファイルで IronOCR Computer Vision を使用するために必要なアセンブリが提供されます。

機能とAPI

コード例はこのチュートリアルのさらに下に記載されています。 現在利用可能な方法の概要は次のとおりです。

方法 説明
テキスト領域の検索 テキスト要素を含む領域を検出し、テキストが検出された領域内のテキストのみを検索するように Tesseract に指示します。
複数のテキスト領域を検索 テキスト要素を含む領域を検出し、テキスト領域に基づいてページを個別の画像に分割します。
テキスト領域を取得 Scans the image and returns a list of text regions as `List`.

FindTextRegion

FindTextRegionを使用すると、コンピューター ビジョンを使用して、OcrInput オブジェクトの各ページでテキスト要素を含む領域を検出します。

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
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()
input.LoadImage("/path/file.png")

input.FindTextRegion()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

注意 このメソッドのオーバーロードは、現在IronOcr 2025.6.xで非推奨となっており、カスタムパラメータは受け取りません。

オプションでカスタムパラメータを使用して呼び出すことができます:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
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()
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
$vbLabelText   $csharpLabel

この例では、テキストを含む領域を切り取る必要があるが、入力画像ではテキストの位置が異なる可能性があるメソッドを作成するために次の画像を使用します。 この場合、FindTextRegion を使用して、Computer Vision がテキストを検出した領域にスキャンを絞り込むことができます。 これはサンプル画像です:

テキスト付き画像
:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-3.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("wh-words-sign.jpg");

// Find the text region using Computer Vision
Rectangle textCropArea = input.GetPages().First().FindTextRegion();

// For debugging and demonstration purposes, lets see what region it found:
input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png);

// Looks good, so let us apply this region to hasten the read:
var ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea);
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Imports System.Linq

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("wh-words-sign.jpg")

' Find the text region using Computer Vision
Dim textCropArea As Rectangle = input.GetPages().First().FindTextRegion()

' For debugging and demonstration purposes, lets see what region it found:
input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png)

' Looks good, so let us apply this region to hasten the read:
Dim ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea)
Console.WriteLine(ocrResult.Text)
$vbLabelText   $csharpLabel

このコードには 2 つの出力があり、1 つ目はデバッグに使用される、 StampCropRectangleAndSaveAsによって保存された.pngファイルです。 IronCV (コンピュータ ビジョン) がテキストがどこにあると考えていたかを確認できます。

テキスト領域が強調表示された画像

かなり良さそうですね。 2 番目の出力はテキストそのものであり、次のようになります。

IRONSOFTWARE

50,000+

Developers in our active community

10,777,061 19,313
NuGet downloads Support tickets resolved
50%+ 80%+
Engineering Team growth Support Team growth
$25,000+

Raised with #TEAMSEAS to clean our beaches & waterways

複数のテキスト領域を検索

FindMultipleTextRegionsの使用方法では、 OcrInputオブジェクトのすべてのページを取得し、コンピューター ビジョンを使用してテキスト要素を含む領域を検出し、テキスト領域に基づいて入力を個別の画像に分割します。

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
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()
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

注意 IronOcr v2025.6.x 以降、 FindMultipleTextRegionsメソッドはカスタム パラメータをサポートしなくなりました。

オプションでカスタムパラメータを使用して呼び出すことができます:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
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()
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
$vbLabelText   $csharpLabel

FindMultipleTextRegionsの別のオーバーロード メソッドは、OCR ページを受け取り、その上のテキスト領域ごとに 1 つずつ OCR ページのリストを返します。

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-3.cs
using IronOcr;
using System.Collections.Generic;
using System.Linq;

int pageIndex = 0;
using var input = new OcrInput();
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()
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
Dim textRegionsOnPage As List(Of OcrInputPage) = selectedPage.FindMultipleTextRegions()
$vbLabelText   $csharpLabel

テキスト領域を取得

GetTextRegionsを使用すると、ページ内でテキストが検出されたトリミング領域のリストが返されます。

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs
using IronOcr;
using IronSoftware.Drawing;
using System.Collections.Generic;
using System.Linq;

int pageIndex = 0;
using var input = new OcrInput();
input.LoadImage("/path/file.png");

var selectedPage = input.GetPages().ElementAt(pageIndex);
// List<Rectangle> regions = selectedPage.GetTextRegions();
Imports IronOcr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Imports System.Linq

Private pageIndex As Integer = 0
Private input = New OcrInput()
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
' List<Rectangle> regions = selectedPage.GetTextRegions();
$vbLabelText   $csharpLabel

特定のユースケースガイド

適切な設定と入力ファイルがあれば、OCR は非常に強力なツールになります。 人間の読解能力をほぼ完璧に模倣できます。

よくある質問

コンピュータビジョンをテキスト検出に活用する方法は?

IronOCRはOpenCVとの統合を利用して、画像内のテキスト検出を強化できます。FindTextRegionFindMultipleTextRegionsといったメソッドを使用すると、テキストエリアを効率的に特定し操作できます。

異なるオペレーティングシステムにIronOCRをコンピュータビジョン用にインストールするにはどのような手順が必要ですか?

異なるオペレーティングシステムでIronOCRを使用するには、NuGetを介してIronOCR.ComputerVisionパッケージをインストールできます。Windows用にはInstall-Package IronOcr.ComputerVision.Windowsコマンドを使用し、LinuxやmacOS用の同様のパッケージも利用可能です。

FindTextRegionメソッドはどのような機能を提供しますか?

IronOCRのFindTextRegionメソッドは、画像内のテキストが存在するエリアを特定し、指定された領域内のみにテキストを検索することでTesseractの精度を向上させます。

カスタムパラメータがテキスト領域検出をどのように改善しますか?

IronOCRでFindTextRegionメソッドを使用してカスタムパラメータを設定することで、テキストの最小高さを設定し、サブリージョンを許可するなど、画像内のテキストエリアをより正確に特定できます。

画像内で複数のテキスト領域を検出することがなぜ有益ですか?

FindMultipleTextRegionsメソッドを使用して複数のテキスト領域を検出することで、IronOCRは画像をテキストに基づいて別のセクションに分割し、請求書や字幕など複数のテキストブロックを含むドキュメントの処理に特に役立ちます。

画像から検出されたテキストエリアをどのように取得できますか?

IronOCRのGetTextRegionsメソッドを使用すると、画像内の検出されたテキストエリアであるCropRectangle領域のリストを取得し、これらのテキスト領域をさらに処理または操作できます。

IronOCRのコンピュータビジョン機能の主な特徴は何ですか?

IronOCRのコンピュータビジョン機能には、FindTextRegionFindMultipleTextRegionsといったメソッドによるテキスト領域検出、カスタマイズ可能なOCR設定、複数のオペレーティングシステムに対応してテキスト検出の精度を向上させます。

IronOCRは複数のテキスト領域を持つ画像をどのように処理しますか?

IronOCRはFindMultipleTextRegionsメソッドを使用して画像を処理し、検出されたテキスト領域に基づいて別の画像に分割し、各テキストエリアの詳細な分析と操作を可能にします。

IronOCRでコンピュータビジョンメソッドを使用するコード例はどこで見つかりますか?

チュートリアルは、IronOCRでFindTextRegionFindMultipleTextRegionsといったメソッドを使用するコード例を提供し、ナンバープレートの読み取りや請求書の処理といった実用的な応用を示している。

C#でIronOCRのコンピュータビジョン機能を利用するために必要なものは何ですか?

C#でIronOCRのコンピュータビジョン機能を使用するには、NuGet経由でIronOcr.ComputerVisionパッケージをインストールし、プロジェクトに必要な名前空間を含めてテキスト検出メソッドにアクセスする必要があります。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 5,167,857 | Version: 2025.11 リリース