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

检测并提取身份证信息 - 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
尝试使用其他语言
  • C#:. NET 6+(控制台)

  • Python:Python

所需知识

在学习本教程之前,请先查看添加引用和设置许可证以及加载和保存图像教程,熟悉创建项目和加载图像的基本步骤。

创建项目并添加 LEADTOOLS 引用

从“加载和保存图像”教程中创建的项目副本开始。如果您没有该项目,请按照该教程中的步骤创建。

所需的引用取决于项目的目的。可以通过 NuGet 包添加引用。

本教程需要以下 NuGet 包:

  • Leadtools.Document.Sdk

有关您的应用程序所需的 DLL 文件的完整列表,请参阅应用程序要包含的文件

设置许可证文件

许可证用于解锁项目所需的功能。必须在调用任何工具包函数之前设置许可证。有关详细信息(包括不同平台的教程),请参阅设置运行时许可证

运行时许可证有两种类型:

  • 评估许可证,在下载评估工具包时获得。它允许对工具包进行评估。
  • 部署许可证。如果需要部署许可证文件和开发者密钥,请参阅获取许可证

添加 ID 帧读取器和处理代码

创建项目、添加引用、设置许可证以及添加加载图像代码后,就可以开始编码了。本教程不需要图像保存代码,因此可以将其注释掉或删除。

解决方案资源管理器中,打开Program.cs。将以下语句添加到using顶部的块中Program.cs

C#
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

C#
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 值。

C#
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)方法中:

C#
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

参见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值