IRONOCRの使い方 C#での字幕のOCR方法(チュートリアル) Kannapat Udonpant 更新日:8月 24, 2025 IronOCR をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる ジェミニで開く このページについてGeminiに問い合わせる 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る このチュートリアルでは、ビデオファイルからハードコードされた字幕を抽出する方法を学びます。 サンプルのビデオファイルを取り出し、ハードコードされた字幕をテキストファイルに抽出します。OCRプロセスを使用してハードコードされた字幕を抽出するC# .NETプログラムを開発します。 このチュートリアルをシンプルで簡単にして、C#の初心者でも理解できるようにします。 字幕の言語に関係なく、ビデオを処理して字幕ファイルを取得できる効率的な光学文字認識(OCR)エンジンが必要です。 OCRの結果を提供する多くのライブラリが利用可能です。 その中には有料のもの、使いにくいもの、効果的ではないものや正確でないものもあり、無料で、効率的で、使いやすく、正確な結果を提供するライブラリを見つけるのは非常に難しいです。 開発に無料で使用できるIronOCRは、商業目的に1か月の無料トライアルを提供しています。 150以上の言語をサポートし、他の多くのOCRライブラリよりも高い精度を提供します。 効率的で使いやすいのも魅力です。 このライブラリをデモンストレーションに使用します。 C#で字幕をOCRする方法 字幕のOCRを実行するためのC#ライブラリをインストールする 字幕付きの画像を新しいOcrInputインスタンスにインポートします。 選択したフィルターを適用して画像を前処理する 画像内の字幕の位置を指定して、OCRのパフォーマンスと精度を向上させます 取得したテキストをテキストファイルとしてエクスポートする IronOCRの概要 IronOCRは、C#ソフトウェアエンジニアが.NETプロジェクトでOCR、バーコードスキャン、テキスト抽出を行うのを支援するために、Iron Softwareによって開発および維持されているライブラリです。 IronOCRの機能には以下が含まれます: 画像(JPEG、PNG、BMP)、GIF、TIF/TIFF、ストリーム、PDFなど多くの形式からのテキスト読み取り デスキュー、ノイズ除去、2値化、解像度の向上、拡張などの多数のフィルターによる低品質のスキャンや写真の補正 20以上の異なる形式からのバーコードの読み取り、QRコードサポート付き そのパフォーマンスが他の同種ライブラリを大幅に上回る最新のTesseract OCRビルドを使用 検索可能なPDF、hOCR / HTMLエクスポート、画像のコンテンツテキストをエクスポート ナンバープレートを読み取るデモアプリケーションを開発しましょう。 Visual Studioプロジェクトを作成 最初のステップは、新しいプロジェクトを作成することです。 Visual Studioを開きます。 新しいプロジェクトを作成をクリックし、コンソールアプリケーションのプロジェクトテンプレートを選択します。 次へボタンをクリックし、プロジェクトに名前を付けます(私は"OCR字幕"と名付けましたが、好みの名前に変更できます)。 次へボタンをクリックし、ターゲットフレームワークを選択します。 最後に、作成ボタンをクリックしてプロジェクトを作成します。 プロジェクトは以下のように作成されます。 Visual Studioで新しいプロジェクトを作成する 今、プロジェクトで使用するためにIronOCRライブラリをインストールする必要があります。 最も簡単な方法は、NuGetパッケージマネージャーを使用してソリューションにインストールすることです。 IronOCRの概要 NuGetパッケージをインストールする 上部メニューバーからツールをクリックし、NuGetパッケージマネージャー > ソリューションのNuGetパッケージを管理を選択します。 Visual StudioでのIronOCRのインストール 次のウィンドウが表示されます。 Visual Studio NuGet Package Manager UI "参照"をクリックして、IronOCRを検索します。 IronOCRパッケージを選択し、インストールボタンをクリックします。 NuGet Package Manager UIでIronOCRを検索する IronOCRライブラリがインストールされ、使用可能になります。 ハードコードされた字幕を抽出する ハードコードされた字幕を抽出するプログラムを書きましょう。 以下のスクリーンショットを使用して字幕を抽出します。 抽出されるテキストのサンプルビデオスクリーンショット 以下の名前空間を追加します。 using IronOcr; using IronOcr; Imports IronOcr $vbLabelText $csharpLabel 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); } // 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); } ' Initialize IronTesseract object Dim ocr = New IronTesseract() ' Create an OCR Input using the specified image path Using input = New OcrInput("D:\License Plate\plate3.jpg") ' Perform OCR on the input image to extract text Dim result = ocr.Read(input) ' Output the extracted text to the console Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel 上記のコードは次のように動作します: IronTesseractオブジェクトを初期化します。 それにより、IronTesseractのデフォルトインスタンスが作成されます。 OcrInputオブジェクトを作成し、入力画像ファイルまたはPDFドキュメントで埋めます。 OcrInputはマルチページドキュメントのOCRを可能にし、OCRの前に画像を強化することでより速く、より正確な結果を得ることができるため、推奨入力タイプです。 OCR入力オブジェクトからテキストを読み取り、OCR結果オブジェクトを返します。 ocr.Readは、与えられた入力スクリーンショットから字幕を抽出します。 result.Textは、与えられた入力から抽出された全内容を返します。 サンプルプログラムは以下のコンソール出力を生成します: IronOCRを使用してサンプル画像のテキスト抽出を実行した際に生成されるコンソール出力 ビデオタイトルと字幕の両方を含むビデオフレームがあると仮定しましょう: ビデオタイトルと字幕のテキスト領域を含む長いビデオの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); } // 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); } ' Initialize IronTesseract object Dim ocr = New IronTesseract() ' Create an OCR Input and specify the region of interest Using input = New OcrInput() ' Define the area within the image where subtitles are located for a 41% improvement on speed Dim 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 Dim result = ocr.Read(input) ' Output the extracted text to the console Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel これにより、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"); } // 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"); } ' Initialize IronTesseract object Dim ocr = New IronTesseract() ' Create an OCR Input with the specified image path Using input = New OcrInput("D:\subtitle\subtitle1.png") ' Perform OCR on the input image to extract text Dim result = ocr.Read(input) ' Save the extracted text to a specified file path result.SaveAsTextFile("D:\subtitle\subtitlefile.txt") End Using $vbLabelText $csharpLabel result.SaveAsTextFileは、出力パスを引数として取り、指定されたパスにファイルを保存します。 ビデオタイトルと字幕のテキスト領域を含む長いビデオの1コマ 概要 このチュートリアルでは、IronOCRを使用し、ビデオスクリーンショットから字幕を読み取る非常にシンプルなプログラムを開発する方法を学びました。 また、抽出したいテキストの領域を指定することもできます。 IronOCRは、OpenCVによるコンピュータビジョンの機能を提供しています。 IronOCRを使用すると、ぼやけた画像や解像度の低い画像からテキストを読み取ることができることを確認しました。 このライブラリは効率的で、正確性を提供します。 125以上の言語を完全な精度でサポートしています。 開発には無料で、製品化には制限がありません。 要約すると、IronOCRは以下を提供します: 画像とスキャンされたドキュメントのスキャンおよび読み取り機能 150以上の世界言語のサポート テキスト、構造化データ、または検索可能なPDFとしての出力 .NET 6、5、Core、Standard、Frameworkをサポート IronOCRは、PDFの読み書き、Excelファイルの操作、画像からのテキストの読み取り、Webサイトからのコンテンツのスクレイピングに便利なIron Softwareのライブラリスイートの一部です。 Iron Suiteを二つの個別ライブラリの価格で購入できます。 よくある質問 C#でビデオファイルからハードコードされた字幕をどのように抽出するのですか? C#でIronOCRを使用してビデオファイルからハードコードされた字幕を抽出できます。NuGetパッケージマネージャーを通じてライブラリをインストールし、その後ビデオフレームを処理してテキストを抽出します。 字幕抽出においてTesseractに対するIronOCRの利点は何ですか? IronOCRは、150以上の言語をサポートし、動画から字幕を抽出するのに適しており、精度の向上や使いやすさを備えたTesseractのアップグレードされた代替手段を提供します。 処理速度を改善するためにIronOCRで字幕の位置をどのように指定しますか? System.Drawing.Rectangleを使用して対象領域に集中することで、処理速度を最大41%向上させることができます。 IronOCRは字幕抽出の際に英語以外の言語でも使用できますか? はい、IronOCRは150以上の言語をサポートしており、複数の言語のビデオから正確に字幕を抽出できます。 C#字幕OCRチュートリアルの前提条件は? このチュートリアルには、C#プログラミングの基本的な知識と、NuGetパッケージマネージャーを使用してVisual StudioでIronOCRライブラリをインストールする能力が必要です。 IronOCRは低品質のビデオフレームをどのように処理しますか? IronOCRには低品質のスキャンを修正する機能が含まれており、サブオプティマルなビデオフレームからのテキスト抽出の精度を向上させます。 IronOCRで字幕を抽出した後の出力フォーマットは何がありますか? 抽出された字幕は、テキストファイル、構造化データ、または検索可能なPDFとして保存できます。 商業プロジェクトでIronOCRを使用することには費用がかかりますか? IronOCRは開発目的で無料で、商業プロジェクトには1か月間の無料トライアルを提供しています。継続して商業用に利用するにはライセンスが必要です。 IronOCRは追加機能のために他のライブラリと統合できますか? はい、IronOCRはPDF操作やウェブスクレイピングなどを行うために他のIron Softwareライブラリと統合でき、その機能を向上させます。 Kannapat Udonpant 今すぐエンジニアリングチームとチャット ソフトウェアエンジニア ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。 関連する記事 公開日 12月 18, 2025 C# PDF フォームフィールドを読む:プログラムでフォームデータを抽出する IronPDFを使用してC#でPDFフォームフィールドを読み取る方法を学びます。記入可能PDFからのテキスト、チェックボックス、ドロップダウンなどを簡単なコード例で抽出します。 詳しく読む 公開日 12月 18, 2025 C# PDFから画像を抽出する:完全開発者ガイド IronPDFの強力なメソッドを使用してC#でPDFドキュメントから画像を抽出する方法を学びます。コード例を含む.NET開発者向けの完全なガイドです。 詳しく読む 公開日 12月 18, 2025 C# PDFから画像への変換:完全な開発者ガイド IronPDFを使用してC#でPDFドキュメントを画像に変換する方法を学びます。JPG、PNG、およびTIFF変換のコード例を含むステップバイステップガイド。 詳しく読む C#でのスクリーンショットからのテキスト取得方法
公開日 12月 18, 2025 C# PDF フォームフィールドを読む:プログラムでフォームデータを抽出する IronPDFを使用してC#でPDFフォームフィールドを読み取る方法を学びます。記入可能PDFからのテキスト、チェックボックス、ドロップダウンなどを簡単なコード例で抽出します。 詳しく読む
公開日 12月 18, 2025 C# PDFから画像を抽出する:完全開発者ガイド IronPDFの強力なメソッドを使用してC#でPDFドキュメントから画像を抽出する方法を学びます。コード例を含む.NET開発者向けの完全なガイドです。 詳しく読む
公開日 12月 18, 2025 C# PDFから画像への変換:完全な開発者ガイド IronPDFを使用してC#でPDFドキュメントを画像に変換する方法を学びます。JPG、PNG、およびTIFF変換のコード例を含むステップバイステップガイド。 詳しく読む