IRONSOFTWAREHOME
IRONOCRの使い方

How to OCR Subtitles in C# (Tutorial)

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年6月28日

このチュートリアルでは、ビデオファイルからハードコードされた字幕を抽出する方法を学びます。 サンプルのビデオファイルを取り出し、ハードコードされた字幕をテキストファイルに抽出します。OCRプロセスを使用してハードコードされた字幕を抽出するC# .NETプログラムを開発します。 このチュートリアルをシンプルで簡単にして、C#の初心者でも理解できるようにします。

字幕の言語に関係なく、ビデオを処理して字幕ファイルを取得できる効率的な光学文字認識(OCR)エンジンが必要です。

OCRの結果を提供する多くのライブラリが利用可能です。 その中には有料のもの、使いにくいもの、効果的ではないものや正確でないものもあり、無料で、効率的で、使いやすく、正確な結果を提供するライブラリを見つけるのは非常に難しいです。

開発に無料で使用できるIronOCRは、商業目的に1か月の無料トライアルを提供しています。 150以上の言語をサポートし、他の多くのOCRライブラリよりも高い精度を提供します。 効率的で使いやすいのも魅力です。 このライブラリをデモンストレーションに使用します。

IronOCRの概要

IronOCRは、C#ソフトウェアエンジニアが.NETプロジェクトでOCR、バーコードスキャン、テキスト抽出を行うのを支援するために、Iron Softwareによって開発および維持されているライブラリです。

IronOCRの機能には以下が含まれます:

  • 画像(JPEG、PNG、BMP)、GIFTIF/TIFF、ストリーム、PDFなど多くの形式からのテキスト読み取り
  • デスキュー、ノイズ除去、2値化、解像度の向上、拡張などの多数のフィルターによる低品質のスキャンや写真の補正
  • 20以上の異なる形式からのバーコードの読み取り、QRコードサポート付き
  • そのパフォーマンスが他の同種ライブラリを大幅に上回る最新のTesseract OCRビルドを使用
  • 検索可能なPDF、hOCR / HTMLエクスポート、画像のコンテンツテキストをエクスポート

ナンバープレートを読み取るデモアプリケーションを開発しましょう。

Visual Studioプロジェクトを作成

最初のステップは、新しいプロジェクトを作成することです。

Visual Studioを開きます。 新しいプロジェクトを作成をクリックし、コンソールアプリケーションのプロジェクトテンプレートを選択します。

次へボタンをクリックし、プロジェクトに名前を付けます(私は"OCR字幕"と名付けましたが、好みの名前に変更できます)。

次へボタンをクリックし、ターゲットフレームワークを選択します。 最後に、作成ボタンをクリックしてプロジェクトを作成します。

プロジェクトは以下のように作成されます。

C#で字幕をOCRする方法 (チュートリアル)、図1: Visual Studioで新しいプロジェクトを作成 Visual Studioで新しいプロジェクトを作成する

今、プロジェクトで使用するためにIronOCRライブラリをインストールする必要があります。 最も簡単な方法は、NuGetパッケージマネージャーを使用してソリューションにインストールすることです。

IronOCRの概要 NuGetパッケージをインストールする

上部メニューバーからツールをクリックし、NuGetパッケージマネージャー > ソリューションのNuGetパッケージを管理を選択します。

C#で字幕をOCRする方法 (チュートリアル)、図2: Visual Studio内でIronOCRをインストール Visual StudioでのIronOCRのインストール

次のウィンドウが表示されます。

C#で字幕をOCRする方法 (チュートリアル)、図3: Visual StudioのNuGetパッケージマネージャーUI Visual Studio NuGet Package Manager UI

"参照"をクリックして、IronOCRを検索します。 IronOCRパッケージを選択し、インストールボタンをクリックします。

C#で字幕をOCRする方法 (チュートリアル)、図4: NuGetパッケージマネージャーUIでIronOCRを検索 NuGet Package Manager UIでIronOCRを検索する

IronOCRライブラリがインストールされ、使用可能になります。

ハードコードされた字幕を抽出する

ハードコードされた字幕を抽出するプログラムを書きましょう。

以下のスクリーンショットを使用して字幕を抽出します。

C#で字幕をOCRする方法 (チュートリアル)、図5: 抽出するテキストを含むサンプルビデオのスクリーンショット 抽出されるテキストのサンプルビデオスクリーンショット

以下の名前空間を追加します。

using IronOcr;

namespace宣言の下に以下のコードを書きます。

// Initialize IronTesseract object
var ocr = new IronTesseract();
// Create an OCR Input using the specified image path
using (var input = new OcrInput(@"D:\License Plate\plate3.jpg"))
{
    // Perform OCR on the input image to extract text
    var result = ocr.Read(input);
    // Output the extracted text to the console
    Console.WriteLine(result.Text);
}

上記のコードは次のように動作します:

  1. IronTesseract オブジェクトを初期化します。 デフォルトの IronTesseract インスタンスが作成されます。
  2. 入力画像ファイルまたはPDF文書で満たされた新しい OcrInput オブジェクトを作成します。 OcrInput は、複数ページの文書のOCRを可能にし、OCRの前に画像を強化することができるため、優先される入力タイプです。これにより、より迅速で正確な結果が得られます。
  3. OCR入力オブジェクトからテキストを読み取り、OCR結果オブジェクトを返します。 ocr.Read は、与えられた入力スクリーンショットから字幕を抽出します。
  4. result.Text は、与えられた入力から抽出されたすべてのコンテンツを返します。

サンプルプログラムは以下のコンソール出力を生成します:

C#で字幕をOCRする方法 (チュートリアル)、図7: IronOCRを使用してサンプル画像でテキスト抽出を実行した際のコンソール出力 IronOCRを使用してサンプル画像のテキスト抽出を実行した際に生成されるコンソール出力

ビデオタイトルと字幕の両方を含むビデオフレームがあると仮定しましょう:

C#で字幕をOCRする方法 (チュートリアル)、図6: ビデオタイトルとビデオ字幕のテキスト領域を含む長いビデオの単一フレーム ビデオタイトルと字幕のテキスト領域を含む長いビデオの1コマ

私たちの目標は、画像の下部領域からハードコードされた字幕を抽出することです。 この場合、字幕が表示されるテキスト領域を指定する必要があります。

フレームでの字幕の位置を指定する

私たちは System.Drawing.Rectangle を使用して、ビデオフレームから字幕を読む領域を指定できます。 計測単位は常にピクセルです。

テキスト領域を指定するために以下のサンプルコードを使用します。

// Initialize IronTesseract object
var ocr = new IronTesseract();
// Create an OCR Input and specify the region of interest
using (var input = new OcrInput())
{
    // Define the area within the image where subtitles are located for a 41% improvement on speed
    var contentArea = new CropRectangle(x: 189, y: 272, height: 252, width: 77);
    // Add the specific region of the image to the OCR input
    input.AddImage(@"D:\subtitle\image.png", contentArea);
    // Perform OCR on the specified region
    var result = ocr.Read(input);
    // Output the extracted text to the console
    Console.WriteLine(result.Text);
}

これにより、**41%**の速度向上が実現し、特定性を高めることができます。 contentArea では、xおよびyの開始点、次に必要な字幕領域の高さと幅を指定しました。

字幕を字幕テキストファイルに保存する

抽出された字幕をテキストファイルに保存しましょう。

// Initialize IronTesseract object
var ocr = new IronTesseract();
// Create an OCR Input with the specified image path
using (var input = new OcrInput(@"D:\subtitle\subtitle1.png"))
{
    // Perform OCR on the input image to extract text
    var result = ocr.Read(input);
    // Save the extracted text to a specified file path
    result.SaveAsTextFile(@"D:\subtitle\subtitlefile.txt");
}

result.SaveAsTextFile は、出力パスを引数として受け取り、指定されたパスにファイルを保存します。

C#で字幕をOCRする方法 (チュートリアル)、図8: ビデオタイトルとビデオ字幕のテキスト領域を含む長いビデオの単一フレーム ビデオタイトルと字幕のテキスト領域を含む長いビデオの1コマ

概要

このチュートリアルでは、IronOCRを使用し、ビデオスクリーンショットから字幕を読み取る非常にシンプルなプログラムを開発する方法を学びました。 また、抽出したいテキストの領域を指定することもできます

IronOCRは、OpenCVによるコンピュータビジョンの機能を提供しています。 IronOCRを使用すると、ぼやけた画像や解像度の低い画像からテキストを読み取ることができることを確認しました。 このライブラリは効率的で、正確性を提供します。 125以上の言語を完全な精度でサポートしています。 開発には無料で、製品化には制限がありません。

要約すると、IronOCRは以下を提供します:

  • 画像とスキャンされたドキュメントのスキャンおよび読み取り機能
  • 150以上の世界言語のサポート
  • テキスト、構造化データ、または検索可能なPDFとしての出力
  • .NET 6、5、Core、Standard、Frameworkをサポート

IronOCRは、PDFの読み書き、Excelファイルの操作、画像からのテキストの読み取り、Webサイトからのコンテンツのスクレイピングに便利なIron Softwareのライブラリスイートの一部です。 Iron Suite二つの個別ライブラリの価格で購入できます。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。