使用 IRONOCR 如何在 C# 中對車牌進行 OCR (教學) Kannapat Udonpant 更新日期:7月 28, 2025 Download IronOCR NuGet 下載 DLL 下載 Windows 安裝程式 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 車牌識別已成為許多行業中的基本工具,從交通管理和停車系統到執法和收費解決方案。 通過利用光學字符識別 (OCR) 技術,開發人員可以高效地從圖像中提取文本,自動化識別車牌的過程。 在本教程中,我們將演示如何使用IronOCR,一個強大的 C# OCR 庫,以準確地從圖像中讀取車牌。 IronOCR 與 OpenCV 源碼無縫集成,以應對計算機視覺任務,即使來自複雜或噪聲圖像來源的文本也能可靠識別。 無論您處理的是乾淨的車牌圖片還是整輛車的照片,本指南將引導您逐步建立一個基於現代 OCR 技術的可靠車牌識別系統。 如何使用 C# 車牌識別 安裝 C# 庫以使用車牌識別 將車牌圖像導入為新的OcrImageInput實例。 應用圖像過濾器以改進 C# 中的文本提取。 通過指定照片中的車牌區域來提高識別速度。 使用OcrLicensePlateResult實例打印提取的文本。 開始使用 IronOCR IronOCR 是一個基於 Tesseract OCR 引擎構建的 C# OCR 庫,專為在 .NET 應用程序中的文本識別項目帶來高準確性和效率而設計。 IronOCR 非常適合處理噪聲或低質量的圖像,包括強大的圖像預處理功能,如自動噪聲消減和灰度轉換,以提高文本提取的清晰度。 IronOCR 的一些亮點功能包括: 高 OCR 準確性:針對多種語言和字體進行優化,即使在處理複雜或失真文本時,IronOCR 也能在準確性上表現出色。 圖像和 PDF 支持:它可以從多種圖像格式和 PDF 文件中讀取文本,使其對於不同的文檔類型都具有通用性。 與 OpenCV 集成:透過 OpenCV 支持,IronOCR 能夠執行計算機視覺任務,如檢測圖像中的特定文本區域,特別適用於車牌識別。 高級預處理:包括灰度轉換、旋轉、去斜以及增強對比度的過濾器,以提高識別質量。 靈活的輸入選擇:支持多頁文件和可調節的區域,讓開發人員能夠專注於選定區域的 OCR 處理,實現更快且更有針對性的結果。 凭借这些功能,IronOCR 是构建需要高精度、灵活性和易于与其他计算机视觉工具集成的 OCR 应用程序的强大解决方案。 創建 Visual Studio 項目 首先打開 Visual Studio 並選擇“創建新項目”。 這將帶您到選擇要構建的項目類型的頁面(在我們的例子中,我們將製作一個控制台應用程序)。 選擇所需的應用程序類型並點擊“下一步”。 現在,給您的項目命名,然後選擇將其保存的位置。 最後,選擇您的目標 .NET 框架並點擊“創建”按鈕。 這將創建項目,如下所示。 下一步是安裝 IronOCR 庫,以便我們可以開始處理車牌。 安裝 IronOCR 要在您的 C# 項目中開始使用 IronOCR,您需要從 NuGet 安裝 IronOCR 包。 IronOCR 與 .NET Framework 和 .NET Core 兼容,使其易於集成到各種 .NET 應用程序中。 步驟 1:打開包管理控制台 在 Visual Studio 中,導航到工具 > NuGet 套件管理器 > 包管理控制台。 步驟 2:安裝 IronOCR 包 在包管理控制台中輸入以下命令: Install-Package IronOcr 此命令安裝 IronOCR 庫,包括在您的項目中運行 OCR 功能所需的所有依賴項。 由於我們的應用程序需要使用計算機視覺的高級功能來檢測車牌,您還可以通過以下方式安裝可選的 IronOcr.ComputerVision.Windows 包: Install-Package IronOcr.ComputerVision.Windows 確保您已安裝IronOcr.Extensions.AdvancedScan擴展,以便您可以利用它強大的ReadLicensePlate方法: Install-Package IronOcr.Extensions.AdvancedScan 或者,您可以通過 工具 > NuGet 套件管理器 > 管理解決方案的 NuGet 套件 安裝包並搜索您需要的包: 代碼設置 最後,我們必須在代碼頂部添加必要的 import 和 using 語句: using IronOcr; using IronOcr; Imports IronOcr $vbLabelText $csharpLabel 使用光學字符識別讀取車牌 在本節中,我們將創建一個程序,使用IronOCR,這是一個在從圖像中提取文本方面表現出色的 Tesseract OCR 引擎來讀取車牌。 為了實現車輛檢測,我們還可以合併其他機器學習庫。 值得注意的是,IronOCR 與 OpenCV 集成—一個領先的開源計算機視覺庫,允許我們執行物體檢測任務,例如識別車輛和車牌。 車牌圖片範例 我們將使用以下車牌: 對車牌執行 OCR 的範例代碼 using IronOcr; var ocr = new IronTesseract(); using (var input = new OcrImageInput("licensePlate.jpeg")) { // Fixes digital noise and makes the image easier to read input.DeNoise(); input.ToGrayScale(); // Reads the license plate information and stores it for further use OcrLicensePlateResult result = ocr.ReadLicensePlate(input); // Saves the license plate text to a string variable string output = result.Text; // Outputs the license plate text to the console Console.WriteLine(output); } using IronOcr; var ocr = new IronTesseract(); using (var input = new OcrImageInput("licensePlate.jpeg")) { // Fixes digital noise and makes the image easier to read input.DeNoise(); input.ToGrayScale(); // Reads the license plate information and stores it for further use OcrLicensePlateResult result = ocr.ReadLicensePlate(input); // Saves the license plate text to a string variable string output = result.Text; // Outputs the license plate text to the console Console.WriteLine(output); } Imports IronOcr Private ocr = New IronTesseract() Using input = New OcrImageInput("licensePlate.jpeg") ' Fixes digital noise and makes the image easier to read input.DeNoise() input.ToGrayScale() ' Reads the license plate information and stores it for further use Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input) ' Saves the license plate text to a string variable Dim output As String = result.Text ' Outputs the license plate text to the console Console.WriteLine(output) End Using $vbLabelText $csharpLabel 代碼詳解: 初始化:var ocr = new IronTesseract(); 創建一個新的 IronTesseract 類的實例,它提供用於光學字符識別 (OCR) 的方法。 圖像輸入:using 語句創建一個帶有指定圖像文件 "licensePlate.jpeg" 的新 OcrImageInput 對象。 此對象旨在保存圖像數據以進行 OCR 處理。 圖像預處理: input.DeNoise(); 應用數位噪聲減少濾波器來增強圖像質量,從而使 OCR 引擎更容易讀取文本。 input.ToGrayScale(); 將圖像轉換為灰度,這可以提高識別準確性和處理速度。 車牌識別:行 OcrLicensePlateResult result = ocr.ReadLicensePlate(input); 使用 ReadLicensePlate 方法分析處理過的圖像並提取任何探測到的車牌信息,將結果存儲在 OcrLicensePlateResult 對象中。 輸出存儲:車牌文本存儲在字串變數 output 中,通過訪問 result.Text,其中包含從車牌中識別出的文本。 控制台輸出:最後,Console.WriteLine(output); 將提取的車牌文本打印到控制台以供驗證。 扫描汽车的车牌号码 如果我們有整輛車而不僅僅是車牌的圖片,我們可以指定一個矩形區域來聚焦於車牌區域。 我們可以使用System.Drawing.Rectangle來以像素為單位定義此區域。 原始圖像 我們將在範例中使用以下圖像文件: 透過指定關注區域,我們提高了處理速度並避免提取不必要的文本。 實施代碼 using IronOcr; using System.Drawing; var ocr = new IronTesseract(); using (var input = new OcrInput()) { var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47); input.LoadImage("CarPlate.jpeg", contentArea); OcrLicensePlateResult result = ocr.ReadLicensePlate(input); Console.WriteLine(result.Text); } using IronOcr; using System.Drawing; var ocr = new IronTesseract(); using (var input = new OcrInput()) { var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47); input.LoadImage("CarPlate.jpeg", contentArea); OcrLicensePlateResult result = ocr.ReadLicensePlate(input); Console.WriteLine(result.Text); } Imports IronOcr Imports System.Drawing Private ocr = New IronTesseract() Using input = New OcrInput() Dim contentArea = New Rectangle(x:= 252, y:= 282, width:= 148, height:= 47) input.LoadImage("CarPlate.jpeg", contentArea) Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input) Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel 代碼詳解: 初始化:var ocr = new IronTesseract(); 創建一個新的 IronTesseract 類的實例,負責執行 OCR 操作。 OCR 輸入:using (var input = new OcrInput()) 語句創建一個新的 OcrInput 對象,它將用於加載和處理圖像進行 OCR。 定義關注區域:var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47); 在圖像中定義一個矩形區域(contentArea)。 此矩形指定車牌預計放置位置的坐標和尺寸(寬度和高度)。 加載圖像:input.LoadImage("CarPlate.jpeg", contentArea); 加載指定的圖像文件("CarPlate.jpeg")並聚焦於定義的矩形(contentArea)以將 OCR 處理限制在特定區域。 讀取車牌:OcrLicensePlateResult result = ocr.ReadLicensePlate(input); 調用ReadLicensePlate方法,分析輸入圖像中的車牌字符並返回包含提取文本的 OcrLicensePlateResult 對象。 輸出:Console.WriteLine(result.Text); 將從車牌中識別到的文本輸出到控制台。 自動車牌辨識 IronOCR 利用 OpenCV 認識圖像中的文本區域,使用各種圖像處理技術。 這一功能使程序能夠通過在圖像中定位文本區域後利用 Tesseract 來讀取這些區域,以檢測車牌。 安裝 要啟用車牌檢測模型,請通過包管理控制台安裝所需的包: 使用自動區域檢測車牌的示例: var ocr = new IronTesseract(); using (var input = new OcrImageInput("CarPlate.jpeg")) { input.FindTextRegion(); OcrLicensePlateResult result = ocr.ReadLicensePlate(input); Console.WriteLine(result.Text); } var ocr = new IronTesseract(); using (var input = new OcrImageInput("CarPlate.jpeg")) { input.FindTextRegion(); OcrLicensePlateResult result = ocr.ReadLicensePlate(input); Console.WriteLine(result.Text); } Dim ocr = New IronTesseract() Using input = New OcrImageInput("CarPlate.jpeg") input.FindTextRegion() Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input) Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel 代碼詳解: 初始化:創建IronTesseract類的一個實例,該實例將用於使用 Tesseract 引擎進行光學字符識別 (OCR)。 圖片輸入:使用指定的圖像文件 ("CarPlate.jpeg") 實例化一個新的 OcrImageInput 對象。 該對象將用作 OCR 過程的輸入,並被封閉在using語句中以確保適當的資源管理。 文本區域檢測:在input對象上調用了FindTextRegion()方法。 該方法使用計算機視覺技術自動識別圖像中可能包含文本的區域,專門針對車牌。 車牌識別:調用了ReadLicensePlate方法以分析檢測的文本區域並提取車牌號碼。 結果存儲在OcrLicensePlateResult對象中,該對象保存了識別出的文本及所有相關的元數據。 輸出:將探測到的車牌文本打印到控制台,以使使用者能查看提取出的車牌號碼。 IronOCR 授權 對於那些想自行試用 IronOCR 的人,IronOCR 提供免費試用,使您能夠使用其提供的整套工具,這意味著您可以在購買許可證之前在自己的項目中嘗試它們。 免費試用結束後,IronOCR 授權從 $liteLicense 的輕量級許可證開始。 它還提供額外收費的可選附加組件,例如免許可重新分發覆蓋和不間斷支持和持續的產品更新。 除此之外,如果您發現需要使用更多的 Iron Software 產品,而不僅僅是 IronOCR,例如 IronPDF 用於您的 PDF 相關任務或 IronWord 用於處理 Word 文檔,則 Iron Software 還提供 Iron Suite,這是一種以極佳價格訪問整個工具範圍的好方法。 結論 在本指南中,我們探討了如何在 C# 中使用IronOCR構建一個可靠的車牌識別系統。 憑藉其強大的文本提取功能和與 OpenCV 的集成,IronOCR 為需要從車輛圖像準確識別文本的應用程序提供了一個高效、易於使用的解決方案。 從圖像預處理到設置特定的檢測區域,IronOCR 通過針對噪聲或複雜圖像(如交通和監控影片中的車牌)量身定做的工具簡化了 OCR 過程。 無論您是在開發交通監控、停車執法還是任何需要自動車牌識別的應用,IronOCR 都提供了一個與 .NET 環境完美集成的綜合庫。 通過遵循這些步驟,您已準備好部署強大的 OCR 解決方案,從而提高各種現實場景的效率和準確性。 外加區域選擇、噪聲消減等額外功能,IronOCR 確保您的車牌識別任務為最佳結果進行了優化。 常見問題解答 如何在 C# 中使用 OCR 來識別車牌號碼? 您可以使用 IronOCR 在 C# 中識別車牌號碼,方法是使用 IronTesseract 類別創建 OCR 實例,載入包含車牌的圖像,應用如降噪的預處理濾鏡,並使用 ReadLicensePlate 方法提取文字。 使用 OCR 進行車牌識別有什麼好處? 使用 OCR 進行車牌識別可以自動提取文字,提供高準確度和效率。IronOCR 擴展了這一服務,支持多種圖像格式和電腦視覺集成,適合如交通管理和執法等應用。 如何在 OCR 處理中處理噪聲或低質量的圖像? IronOCR 提供強大的圖像預處理功能,如自動降噪和灰階轉換,即使在處理噪聲或低質量圖像時也能提高文字提取的準確性。 是否可以將 OCR 處理集中在圖像的特定區域? 是的,IronOCR 允許您指定圖像中的矩形感興趣區域以集中 OCR 處理,從而提高如車牌等區域的文字提取速度和準確性。 如何在 Visual Studio 項目中開始使用 OCR? 要在 Visual Studio 項目中開始使用 OCR,創建新的控制台應用程式,透過 NuGet 安裝 IronOCR 程式包,並使用 IronOCR 類別和方法實施 OCR 邏輯。此設置允許您在應用程式中輕鬆執行 OCR 任務。 IronOCR 提供哪些車牌識別功能? IronOCR 提供高 OCR 準確度、與 OpenCV 的結合進行增強電腦視覺任務、高級預處理濾鏡、支持多種圖像和 PDF 格式,成為車牌識別的多功能工具。 IronOCR 如何整合電腦視覺任務? IronOCR 與 OpenCV 整合以執行各種電腦視覺任務,例如自動文字區域檢測,以增強如車牌識別等應用的 OCR 過程。 IronOCR 提供哪些授權選項? IronOCR 提供免費試用版以及各種許可選項,起始於基本許可證。對於尋求跨不同應用擴展功能的用戶,還提供額外附加產品和 Iron Suite。 OCR 技術是否可以應用於完整的車輛圖像? 是的,IronOCR 可以用於整個車輛的圖像。藉由指定車牌區域,可以將 OCR 處理集中於所需區域,避免不必要的文字提取,並提高處理效率。 Kannapat Udonpant 立即與工程團隊聊天 軟體工程師 在成為软件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人实验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因为他直接向编写大部分 IronPDF 使用的代码的开发者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代码或文档时,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。 相關文章 發表日期 9月 29, 2025 如何使用 IronOCR 建立 .NET OCR SDK 使用 IronOCR 的 .NET SDK 創建強大的 OCR 解決方案。簡單的 API,企業功能,跨平台支持的文檔處理應用。 閱讀更多 發表日期 9月 29, 2025 如何在 C# GitHub 專案中整合 OCR OCR C# GitHub 教學:使用 IronOCR 在您的 GitHub 專案中實現文本識別。包括程式碼範例和版本控制技巧。 閱讀更多 更新日期 9月 4, 2025 如何將文檔處理記憶體減少 98%:IronOCR 的工程突破 IronOCR 2025.9 通過流式架構將 TIFF 處理記憶體減少 98%,消除崩潰並提高企業工作流程的速度。 閱讀更多 如何在 C# 中對駕駛證進行 OCR如何在 C# 教學中從發票中...
發表日期 9月 29, 2025 如何使用 IronOCR 建立 .NET OCR SDK 使用 IronOCR 的 .NET SDK 創建強大的 OCR 解決方案。簡單的 API,企業功能,跨平台支持的文檔處理應用。 閱讀更多
發表日期 9月 29, 2025 如何在 C# GitHub 專案中整合 OCR OCR C# GitHub 教學:使用 IronOCR 在您的 GitHub 專案中實現文本識別。包括程式碼範例和版本控制技巧。 閱讀更多
更新日期 9月 4, 2025 如何將文檔處理記憶體減少 98%:IronOCR 的工程突破 IronOCR 2025.9 通過流式架構將 TIFF 處理記憶體減少 98%,消除崩潰並提高企業工作流程的速度。 閱讀更多