使用 IRONOCR 如何在 C# 中對字幕進行 OCR(教學) Kannapat Udonpant 更新:2025年8月24日 下載 IronOCR NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在本教程中,我們將學習如何從影片檔案中提取硬編碼字幕。 我們將選取一個視訊檔案作為範例,並將其中硬編碼的字幕提取到一個文字檔案中。我們將開發一個 C# .NET程序,利用 OCR 技術來提取這些硬編碼的字幕。 我會盡量讓本教學簡單易懂,以便即使是 C# 程式設計初學者也能理解。 我們需要一個高效的光學字元辨識(OCR)引擎,能夠處理影片並取得字幕文件,而無需考慮字幕語言。 有很多圖書館提供OCR識別結果。 有些函式庫是付費的,有些函式庫使用起來很困難,有些函式庫效率不高或不準確,因此很難找到一個免費、有效率、易用且能提供準確結果的函式庫。 IronOCR對開發者免費,並為商業用途提供一個月的免費試用期。 它支援超過 150 種語言,並且比大多數其他 OCR 庫具有更高的準確率。 它也高效且易於使用。 我們將使用這個庫進行演示。 如何在 C# 中進行 OCR 字幕識別 安裝 C# 庫以對字幕執行 OCR 識別。 將帶有字幕的圖像匯入到新的`OcrInput`實例中 透過應用選定的濾波器對影像進行預處理。 指定影像中字幕的位置,以提高OCR效能和準確性 將檢索到的文字匯出為文字文件 IronOCR IronOCR是由Iron Software開發和維護的函式庫,它可以幫助 C# 軟體工程師在.NET專案中執行 OCR、條碼掃描和文字擷取。 IronOCR的功能包括: 讀取多種格式的文本,例如圖像(JPEG、PNG、BMP)、 GIF 、 TIF/TIFF 、串流媒體和PDF。 使用多種濾鏡(例如去斜、降噪、二值化、增強解析度、膨脹等)校正低品質掃描件和照片 -支援讀取 20 多種不同格式的條碼以及二維碼 採用最新版本的 Tesseract OCR,其效能遠超同類其他函式庫。 匯出可搜尋的 PDF、hOCR / HTML 匯出和圖片內容文字。 讓我們開發一個讀取車牌號碼的演示應用程式。 建立一個 Visual Studio 項目 第一步是建立一個新專案。 開啟 Visual Studio。 點選"建立新專案" ,然後選擇"控制台應用程式"專案範本。 點擊"下一步"按鈕,並為項目命名(我將其命名為"OCR 字幕",您可以根據自己的喜好命名)。 點選"下一步"按鈕,然後選擇目標框架。 最後,點擊"建立"按鈕建立項目。 項目將按如下所示建立。 在 Visual Studio 中建立新項目 現在,我們需要安裝IronOCR庫才能在我們的專案中使用它。 最簡單的方法是透過NuGet套件管理器為解決方案安裝。 安裝IronOCR NuGet包 點選頂部功能表列中的"工具" ,然後選擇"NuGet套件管理器" > "管理解決方案的NuGet套件" ,如下圖所示。 在 Visual Studio 中安裝IronOCR 將出現以下視窗。 Visual Studio NuGet套件管理器 UI 點選瀏覽,搜尋IronOCR。 選擇IronOCR軟體包,然後按一下"安裝"按鈕,如下圖所示。 在NuGet套件管理器 UI 中搜尋IronOCR IronOCR庫將安裝完畢,即可使用。 提取硬編碼字幕 讓我們寫一個程式來提取硬編碼的字幕。 我們將使用以下螢幕截圖來提取字幕。 視訊截圖範例,將從中提取文本 新增以下命名空間: using IronOcr; using IronOcr; $vbLabelText $csharpLabel 在命名空間聲明下方編寫以下程式碼。 // 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); } $vbLabelText $csharpLabel 上述程式碼的工作原理如下: 初始化IronTesseract物件。 它將建立一個 IronTesseract 的預設實例。 建立一個新的OcrInput對象,並用輸入影像檔案或 PDF 文件填滿。 OcrInput 是首選的輸入類型,因為它允許對多頁文件進行 OCR,並且允許在 OCR 之前增強影像,以獲得更快、更準確的結果。 從 OCR 輸入物件讀取文字並傳回 OCR 結果物件。 ocr.Read將從給定的輸入螢幕截圖中提取字幕。 result.Text 將傳回從給定輸入中提取的全部內容。 範例程式會在控制台輸出以下內容: 使用IronOCR對範例影像進行文字擷取後產生的控制台輸出 假設你有一個視訊幀,其中包含視訊標題和字幕: 一段較長影片中的單幀畫面,包含影片標題和影片字幕的文字區域。 我們的目標是從圖像底部區域提取硬編碼的字幕。 在這種情況下,我們需要指定顯示副標題的文字區域。 指定字幕在畫面中的位置 我們可以使用 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); } $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"); } $vbLabelText $csharpLabel result.SaveAsTextFile將以輸出路徑作為參數,並將檔案儲存到給定的路徑中。 一段較長影片中的單幀畫面,包含影片標題和影片字幕的文字區域。 概括 在本教程中,我們學習瞭如何使用IronOCR並開發了一個非常簡單的程序,用於從視訊截圖中讀取字幕。 我們也可以指定要提取文字的區域。 IronOCR提供了OpenCV的電腦視覺功能。 我們已經看到, IronOCR使我們能夠從模糊或低解析度圖像中讀取文字。 這個庫高效且準確。 它支援 125 種以上的語言,準確率極高。 它可免費用於開發,且對生產沒有任何限制。 總而言之, IronOCR提供: 具備掃描讀取影像及掃描文件的能力 支援150 多種全球語言 輸出格式可以是文字、結構化資料或可搜尋的PDF文件 支援.NET 6、5、Core、Standard 和 Framework IronOCR是 Iron Software 的一套庫的一部分,該庫可用於讀取和寫入 PDF 、操作 Excel 文件、從圖像中讀取文字以及從網站抓取內容。 只需支付兩個獨立庫的價格,即可購買完整的Iron Suite。 常見問題解答 如何在 C# 中從視頻文件中提取硬編碼字幕? 您可以使用 IronOCR 在 C# 中從視頻文件中提取硬編碼字幕。通過 NuGet 套件管理器安裝該庫,然後使用它處理視頻框架並提取文本。 使用 IronOCR 提取字幕相比於使用 Tesseract 有什麼優勢? IronOCR 提供了一種升級替代 Tesseract 的方法,具有更高的準確性、易用性和支持超過 150 種語言的能力,使其非常適合從視頻中提取字幕。 如何在 IronOCR 中指定字幕位置以提高處理速度? 您可以使用 System.Drawing.Rectangle 指定 IronOCR 中的字幕位置,以集中在感興趣的區域,這可以將處理速度提高多達 41%。 IronOCR 可以用於提取非英文語言的字幕嗎? 是的,IronOCR 支持超過 150 種語言,使其能夠準確地從多語言視頻中提取字幕。 哪些先決條件適用於 C# 字幕 OCR 教程? 本教程需要基本的 C# 編程知識,以及使用 Visual Studio 通過 NuGet 套件管理器安裝 IronOCR 庫的能力。 IronOCR 如何處理低質量的視頻幀? IronOCR 包含糾正低質量掃描的功能,提高了從次佳視頻幀中提取文字的準確性。 在用 IronOCR 提取字幕後有哪些輸出格式可用? 提取的字幕可以使用 IronOCR 保存為文本文件、結構化數據或可搜索的 PDF。 使用 IronOCR 用於商業項目是否有成本? IronOCR 可免費用於開發目的,並提供一個月的商業項目免費試用。持續商業用途需獲購許可。 IronOCR 可以與其他庫集成以獲得額外的功能嗎? 是的,IronOCR 可以與其他 Iron Software 庫集成,以完成例如 PDF 操作和網路抓取等任務,增強其功能。 Kannapat Udonpant 立即與工程團隊聊天 軟體工程師 在成為軟件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人實验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因為他直接向编写大部分 IronPDF 使用的代碼的開發者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代碼或文檔時,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。 相關文章 發表日期 2026年3月8日 使用 C# 建立一個能真正提取有用資料的收據 OCR API 使用 IronOCR 在 C# 中建置收據 OCR API。透過附帶程式碼範例的逐步教學,學習如何從收據影像中精準且在地端提取結構化資料。 閱讀更多 更新2026年3月1日 OCR C# GitHub:使用 IronOCR 進行文字辨識 OCR C# GitHub 教學:使用 IronOCR 在您的 GitHub 專案中實現文本識別。包括程式碼範例和版本控制技巧。 閱讀更多 更新2026年3月1日 .NET OCR SDK:適用於 C# 的文字辨識函式庫 使用 IronOCR 的 .NET SDK 創建強大的 OCR 解決方案。簡單的 API,企業功能,跨平台支援的文檔處理應用。 閱讀更多 如何在 C# 中從螢幕截圖中提取文本
發表日期 2026年3月8日 使用 C# 建立一個能真正提取有用資料的收據 OCR API 使用 IronOCR 在 C# 中建置收據 OCR API。透過附帶程式碼範例的逐步教學,學習如何從收據影像中精準且在地端提取結構化資料。 閱讀更多
更新2026年3月1日 OCR C# GitHub:使用 IronOCR 進行文字辨識 OCR C# GitHub 教學:使用 IronOCR 在您的 GitHub 專案中實現文本識別。包括程式碼範例和版本控制技巧。 閱讀更多
更新2026年3月1日 .NET OCR SDK:適用於 C# 的文字辨識函式庫 使用 IronOCR 的 .NET SDK 創建強大的 OCR 解決方案。簡單的 API,企業功能,跨平台支援的文檔處理應用。 閱讀更多