在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
车牌识别已成为许多行业中不可或缺的工具,从交通管理和停车系统到执法和收费解决方案。 通过利用光学字符识别 (光学字符识别)通过技术,开发人员可以高效地从图像中提取文本,实现车牌识别过程的自动化。 在本教程中,我们将演示如何使用IronOCR,强大的C# OCR库,从图像中精确读取车牌。 IronOCR通过与OpenCV源码的无缝集成,用于计算机视觉任务,提供了一个强大的解决方案,即使从复杂或噪声较大的图像来源中也能识别文本。 无论您是在处理干净的车牌图像,还是完整的车辆照片,本指南将指导您通过现代光学字符识别(OCR)技术构建可靠的车牌识别系统的步骤。
将车牌图像导入到新的OcrImageInput实例中
在C#中应用图像滤镜以改善文本提取
通过在照片中指定车牌区域来提高识别速度
IronOCR 是一个基于 Tesseract OCR 引擎的 C# OCR 库,专为在 .NET 应用程序中为文本识别项目提供高精度和高效能而设计。 适用于处理噪声或低质量图像,IronOCR包含强大的图像预处理功能,如自动降噪和灰度转换,以增强文本提取的清晰度。
IronOCR 的一些显著功能包括:
灵活的输入选项:支持多页文档和可调区域,使开发人员能够将OCR处理集中在选定区域,以获得更快和更有针对性的结果。
凭借这些功能,IronOCR 是一个强大的解决方案,适用于构建对准确性、灵活性和与其他计算机视觉工具的易于集成性有要求的 OCR 应用程序。
首先打开 Visual Studio,并选择“创建新项目”。 这将带您进入一个页面,您可以在其中选择要构建的项目类型。(在我们的案例中,我们将创建一个控制台应用程序。). 选择所需的应用类型,然后点击“下一步”。
现在,为您的项目命名并选择保存位置。
最后,选择你的目标 .NET 框架,并点击“创建”按钮。 这将创建项目,如下所示。
接下来的步骤是安装IronOCR库,以便我们开始处理车牌。
要在您的C#项目中开始使用IronOCR,您需要从NuGet安装IronOCR包。 IronOCR兼容.NET Framework和.NET Core,使其易于集成到各种.NET应用程序中。
在 Visual Studio 中,导航至 Tools > NuGet Package Manager > Package Manager Console。
在包管理器控制台中输入以下命令:
Install-Package IronOcr
Install-Package IronOcr
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr
此命令安装IronOCR库,包括运行项目中OCR功能所需的所有依赖项。 由于我们的应用程序需要使用计算机视觉的高级功能,例如车牌检测,您也可以通过这种方式安装可选的 IronOcr.ComputerVision.Windows 包:
Install-Package IronOcr.ComputerVision.Windows
Install-Package IronOcr.ComputerVision.Windows
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr.ComputerVision.Windows
并确保您拥有IronOcr.Extensions.AdvancedScan安装扩展以便您可以使用其强大的 ReadLicensePlate 方法:
Install-Package IronOcr.Extensions.AdvancedScan
Install-Package IronOcr.Extensions.AdvancedScan
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr.Extensions.AdvancedScan
或者,您可以使用工具 > NuGet 包管理器 > 为解决方案管理 NuGet 包来安装这些包,并搜索您需要的包:
最后,我们必须在代码的顶部添加必要的导入和 using 语句:
using IronOcr;
using IronOcr;
Imports IronOcr
在本节中,我们将创建一个程序来读取车牌,使用IronOCR,一个擅长从图像中提取文本的 Tesseract OCR 引擎。 为了实现车辆检测,我们还可以结合其他机器学习库。 值得注意的是,IronOCR 与 OpenCV 集成,这是一个领先的开源计算机视觉库,使我们能够执行物体检测任务,例如识别车辆和车牌。
我们将使用以下车牌:
接下来,添加以下代码对车牌进行OCR:
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrImageInput("licensePlate.jpeg"))
{
// Fixing the digital noise and making the image easier to read
input.DeNoise();
input.ToGrayScale();
// Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
// Saving the license plate text to a string variable
string output = result.Text;
// Outputting the license plate text to the console
Console.WriteLine(output);
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrImageInput("licensePlate.jpeg"))
{
// Fixing the digital noise and making the image easier to read
input.DeNoise();
input.ToGrayScale();
// Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
// Saving the license plate text to a string variable
string output = result.Text;
// Outputting the license plate text to the console
Console.WriteLine(output);
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrImageInput("licensePlate.jpeg")
' Fixing the digital noise and making the image easier to read
input.DeNoise()
input.ToGrayScale()
' Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
' Saving the license plate text to a string variable
Dim output As String = result.Text
' Outputting the license plate text to the console
Console.WriteLine(output)
End Using
代码解析:
图像预处理:
请注意,您提供的内容是空的。请提供要翻译的文本。input.DeNoise();应用数字噪声减少滤镜来提高图像质量,使OCR引擎更容易读取文本。
请注意,您提供的内容是空的。请提供要翻译的文本。input.ToGrayScale();将图像转换为灰度,这可以提高识别精度和处理速度。
如果我们有一整辆汽车的图像,而不仅仅是车牌,我们可以指定一个矩形区域来专注于车牌区域。 我们可以使用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
代码解析:
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
代码解析:
对于那些想亲自体验IronOCR的人,IronOCR提供一个免费试用这使您可以访问它提供的所有工具,这意味着您可以在购买许可证之前在自己的项目中试用它们。 一旦您的免费试用期结束,IronOCR 许可起价仅为 $749 的 Lite License。 它还提供可选的附加组件,需支付额外费用,例如免版税的再分发覆盖、不间断支持和持续的产品更新。
除此之外,如果您发现自己需要使用的不仅仅是IronOCR,还包括其他IronSoftware产品,比如用于PDF相关任务的IronPDF或处理Word文档的IronWord,那么IronSoftware还提供Iron Suite, 这是以优惠的价格获取全套工具的绝佳方式。
在本指南中,我们探讨了如何使用C#构建一个可靠的车牌识别系统。IronOCR. 凭借其强大的文本提取能力和与OpenCV的集成,IronOCR为需要从车辆图像中进行准确文本识别的应用程序提供了一种高效、易于使用的解决方案。 从图像预处理到设置特定检测区域,IronOCR使用专为嘈杂或复杂图像(如交通和监控录像中的车牌)设计的工具简化了OCR流程。
无论您是在开发交通监控、停车执法,还是任何需要自动车牌识别的应用程序,IronOCR 都提供了一个能够无缝集成到 .NET 环境中的综合库。 通过遵循这些步骤,您将具备部署 OCR 驱动的解决方案的能力,从而在各种实际场景中提高效率和准确性。 IronOCR通过区域选择和降噪等附加功能,确保您的车牌识别任务获得最佳结果优化。