检测并提取身份证信息 - C# .NET 6

本教程介绍如何使用 LEADTOOLS SDK 在 C# .NET 6 应用程序中从给定图像中检测和提取身份证信息。
概述 | |
---|---|
概括 | 本教程介绍如何在 C# .NET 6 控制台应用程序中从图像中查找和提取身份证特征。 |
完成时间 | 30分钟 |
Visual Studio 项目 | 下载教程项目 (1 KB) |
平台 | C# .NET 6 控制台应用程序 |
集成开发环境 | Visual Studio 2022 |
运行时目标 | .NET 6 或更高版本 |
开发许可证 | 下载 LEADTOOLS |
尝试使用其他语言 |
|
所需知识
在学习本教程之前,请先查看添加引用和设置许可证以及加载和保存图像教程,熟悉创建项目和加载图像的基本步骤。
创建项目并添加 LEADTOOLS 引用
从“加载和保存图像”教程中创建的项目副本开始。如果您没有该项目,请按照该教程中的步骤创建。
所需的引用取决于项目的目的。可以通过 NuGet 包添加引用。
本教程需要以下 NuGet 包:
Leadtools.Document.Sdk
有关您的应用程序所需的 DLL 文件的完整列表,请参阅应用程序要包含的文件。
设置许可证文件
许可证用于解锁项目所需的功能。必须在调用任何工具包函数之前设置许可证。有关详细信息(包括不同平台的教程),请参阅设置运行时许可证。
运行时许可证有两种类型:
- 评估许可证,在下载评估工具包时获得。它允许对工具包进行评估。
- 部署许可证。如果需要部署许可证文件和开发者密钥,请参阅获取许可证。
添加 ID 帧读取器和处理代码
创建项目、添加引用、设置许可证以及添加加载图像代码后,就可以开始编码了。本教程不需要图像保存代码,因此可以将其注释掉或删除。
在解决方案资源管理器中,打开Program.cs
。将以下语句添加到using
顶部的块中Program.cs
。
using System;
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.Commands;
using Leadtools.Ocr;
Program
向名为的类中添加一个新方法ReadIDCard(RasterImage image)
,使用 RasterCodecs 加载示例图像并将该类传递RasterImage
给该方法。
为了本教程的目的,使用以下图像:<INSTALL_DIR>\LEADTOOLS23\Resources\Images\License_SAMPLE.PNG
static void Main(string[] args)
{
InitLEAD();
using (RasterCodecs codecs = new RasterCodecs())
{
RasterImage image = codecs.Load(@"<INSTALL_DIR>\LEADTOOLS23\Resources\Images\License_SAMPLE.PNG");
ReadIDCard(image);
}
}
将下面的代码添加到ReadIDCard()
方法中以处理给定的图像并在检测到时输出 ID 值。
static void ReadIDCard(RasterImage image)
{
using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD))
{
var buffer = Path.Combine(@"<INSTALL_DIR>\LEADTOOLS23\Bin\Common\OcrLEADRuntime", "LEAD.Binarize.bin");
ocrEngine.Startup(null, null, null, null);
using (IDFrameReader idFrameReader = new IDFrameReader(File.ReadAllBytes(buffer), ocrEngine))
{
var results = idFrameReader.Process(image);
if (results.Ready)
foreach (var res in idFrameReader.Results)
Console.WriteLine($"{res.Key} : {res.Value}");
else
Console.WriteLine("No ID found in this image");
}
}
}
处理流
如果您想使用内存流检测和提取数据,请将以下代码插入到Main(string[] args)
方法中:
string filename = @"C:\LEADTOOLS23\Resources\Images\License_SAMPLE.PNG";
using (RasterCodecs codecs = new RasterCodecs())
{ // To load by memory stream and extract the data
byte[] bytes = File.ReadAllBytes(filename);
using (MemoryStream ms = new MemoryStream(bytes))
{
ms.Position = 0;
// codecs.Load(ms);
RasterImage image = codecs.Load(ms);
ReadIDCard(image);
}
}
笔记
这将替换调用下的现有代码
InitLEAD()
。
运行项目
按F5或选择“调试”->“开始调试”来运行项目。
如果正确执行了这些步骤,则会出现控制台,应用程序会检测 ID 信息并将其显示到控制台。
本教程展示了如何使用该类加载图像并运行许可证识别IDFrameReader
。