IRONSOFTWAREHOME
USING IRONOCR

如何在 C# 中使用 OCR 车牌(教程)

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年1月18日

车牌识别已成为许多行业的基本工具,从交通管理和停车系统到执法和收费解决方案。 通过利用光学字符识别(OCR)技术,开发人员可以高效地从图像中提取文本,实现车牌识别过程的自动化。 在本教程中,我们将展示如何使用IronOCR,一个强大的C# OCR库,从图像中准确读取车牌。 凭借与OpenCV源代码的无缝集成,用于计算机视觉任务,IronOCR提供了一个强大的解决方案,即使从复杂或噪声图像来源中也能识别文本。 无论您是处理清晰的车牌图像还是完整的车辆照片,本指南都将引导您使用现代OCR技术构建一个可靠的车牌识别系统。

如何使用C#进行车牌识别

  1. 安装C#库以使用车牌识别
  2. 将车牌图像导入到一个新的OcrImageInput实例。
  3. 应用图像过滤器以提高C#中的文本提取效果。
  4. 通过指定照片中的车牌区域来提高识别速度。
  5. 使用一个OcrLicensePlateResult实例打印提取的文本。

IronOCR 入门

IronOCR是一个基于Tesseract OCR引擎的C#库,专为提高.NET应用程序中文本识别项目的高精度和高效性而设计。 适合处理噪声或低质量图像,IronOCR包括强大的图像预处理功能,如自动降噪和灰度转换,提高文本提取的清晰度。

IronOCR的一些突出功能包括:

-高 OCR 准确率: IronOCR针对各种语言和字体进行了优化,即使在处理复杂或扭曲的文本时,也能表现出色,准确率极高。 -**图片和 PDF 支持:**它可以读取多种图片格式和 PDF 文件中的文本,使其适用于不同的文档类型。 -**与 OpenCV 集成:**通过 OpenCV 支持, IronOCR可以执行计算机视觉任务,例如检测图像中的特定文本区域,这对于车牌识别尤其有用。 -**高级预处理:**包括灰度转换、旋转、去倾斜和对比度增强等滤镜,以提高识别质量。 -**灵活的输入选项:**支持多页文档和可调整区域,让开发人员能够将 OCR 处理集中在选定区域,从而获得更快、更精准的结果。

凭借这些功能,IronOCR是构建要求精确、灵活及易于与其他计算机视觉工具集成的OCR应用程序的强大解决方案。

创建 Visual Studio 项目

首先打开Visual Studio并选择"创建新项目"。 这将带您进入一个页面,在这里可以选择要构建的项目类型(在我们的案例中,我们将制作一个控制台应用程序)。 选择所需的应用程序类型并单击"下一步"。

Visual Studio项目类型

现在,给您的项目命名并选择其将保存的位置。

项目名称和位置

最后,选择您的目标.NET框架并点击"创建"按钮。 这将创建项目,如下所示。

创建的项目

下一步是安装IronOCR库,以便开始处理车牌。

安装IronOCR

要在您的C#项目中开始使用IronOCR,您需要从NuGet安装IronOCR包。 IronOCR兼容.NET Framework和.NET Core,使其易于集成到各种.NET应用程序中。

步骤1:打开包管理器控制台

在Visual Studio中,导航到工具 > NuGet包管理器 > 包管理器控制台

步骤2:安装IronOCR包

在包管理器控制台中输入以下命令:

PM > Install-Package IronOcr

此命令安装IronOCR库,包括项目中运行OCR功能所需的所有依赖项。 由于我们的应用程序需要使用计算机视觉的高级功能,如车牌检测,您也可以通过以下方式安装可选的IronOcr.ComputerVision.Windows包:

PM > Install-Package IronOcr.ComputerVision.Windows

确保安装IronOcr.Extensions.AdvancedScan扩展,以便您可以利用其强大的ReadLicensePlate方法:

PM > Install-Package IronOcr.Extensions.AdvancedScan

或者,您可以使用工具 > NuGet包管理器 > 为解决方案管理NuGet包安装这些包并搜索您需要的包:

NuGet包管理器

设置代码

最后,我们必须在代码顶部添加必要的导入和using语句:

using IronOcr;

使用光学字符识别读取车牌

在本节中,我们将创建一个程序,使用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);
}

OCR输出

代码细节:

  • 初始化: IronTesseract类的新实例,该类提供光学字符识别(OCR)的方法。

  • 图像输入: "licensePlate.jpeg"。 这个对象被设计为保存用于OCR处理的图像数据。

-图像预处理:

  • input.DeNoise();应用了一种数字噪声减少滤波器,以增强图像质量,使OCR引擎更容易读取文本。

  • input.ToGrayScale();将图像转换为灰度,能够提高识别精确度和处理速度。

  • 车牌识别: 这行OcrLicensePlateResult对象中。

  • 输出存储: 车牌文本通过访问包含车牌识别文本的output中。

  • 控制台输出: 最后,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);
}

集中的OCR输出

代码细节:

  • 初始化: IronTesseract类的新实例,该类负责执行OCR操作。
  • OCR输入: 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对象。
  • 输出: 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);
}

自动OCR输出

代码细节:

  • 初始化: 创建了一个IronTesseract类的实例,该实例将用于使用Tesseract引擎进行光学字符识别(OCR)。
  • 图像输入: 使用指定的图像文件("CarPlate.jpeg")实例化了一个新的OcrImageInput对象。 此对象将作为OCR过程的输入,并被封装在using语句中,以确保适当的资源管理。
  • 文本区域检测:FindTextRegion()方法。 该方法使用计算机视觉技术自动识别图像中可能包含文本的区域,特别是针对车牌。
  • 车牌识别: 调用ReadLicensePlate方法分析检测到的文本区域,并提取车牌号。 结果存储在一个OcrLicensePlateResult对象中,该对象保存识别出的文本及任何相关的元数据。 -**输出:**检测到的车牌文本将打印到控制台,使用户能够看到提取的车牌号码。

IronOCR授权

对于想要自己尝试IronOCR的人来说,IronOCR提供免费试用版,让您可以访问其提供的完整工具范围,这意味着您可以在自己的项目中尝试这些工具,然后再购买许可证。 一旦您的免费试用到期,IronOCR许可的价格从仅$999开始。 它还提供可选附加项,如无版税再分发覆盖、不断的支持和持续的产品更新,需额外收费。

除此之外,如果您发现自己需要使用除IronOCR之外的更多Iron Software产品,例如用于PDF相关任务的IronPDF或用于处理Word文档的IronWord,那么Iron Software也提供Iron Suite,这是获得整个工具范围的好方法,价格也很优惠。

结论

在本指南中,我们探索了如何使用IronOCR在C#中构建一个可靠的车牌识别系统。 凭借其强大的文本提取功能和与OpenCV的集成,IronOCR为需要从车辆图像中准确识别文本的应用提供了一种高效、易于使用的解决方案。 从预处理图像到设置特定的检测区域,IronOCR利用为嘈杂或复杂图像量身定制的工具简化了OCR过程,如交通与监控画面中的车牌。

无论您是在为交通监控、停车执法还是任何需要自动车牌识别的应用程序开发,IronOCR提供了一个无缝集成到.NET环境中的全面库。 通过遵循这些步骤,您可以部署OCR驱动的解决方案,从而提高各种现实场景中效率和准确性。 通过如选择区域和降噪等附加功能,IronOCR确保您的车牌识别任务优化以获得最佳结果。

相关文章

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
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户