医疗影像工具LEADTOOLS 入门教程: 检测和提取机读旅行证件 - 控制台 C#

news2025/1/20 10:58:56

LEADTOOLS 是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理,PDF,打印捕获,归档,注释和显示功能。利用业界领先的图像处理技术,能够智能识别文件,可以用来识别任何类型的扫描或传真形式的图像。

LEADTOOLS 最新下载(qun:731259648)https://www.evget.com/product/782/download

本教程介绍如何创建使用 LEADTOOLS SDK 执行 MICR 检测和识别的 C# Windows 控制台应用程序。

概述
概括本教程介绍如何在 C# Windows 控制台应用程序中使用 LEADTOOLS MRTD SDK 技术。
完成时间30分钟
视觉工作室项目下载教程项目 (3 KB)
平台Windows 控制台 C# 应用程序
集成开发环境视觉工作室 2017、2019
开发许可下载 LEADTOOLS
用另一种语言试试
  • C# :.NET Framework(控制台)、. NET 6+(控制台)
  • 苹果:macOS
  • Java:  , Java Android

所需知识

在学习检测和提取机读旅行证件 - 控制台 C#教程之前,通过查看添加引用和设置许可证教程熟悉创建项目的基本步骤。

创建项目并添加 LEADTOOLS 引用

从添加引用和设置许可证教程中创建的项目副本开始。如果您没有该项目,请按照该教程中的步骤创建它。

所需的参考取决于项目的目的。可以通过以下两种方法之一(但不能同时使用)添加引用。对于这个项目,需要以下参考资料:

如果使用 NuGet 引用,本教程需要以下 NuGet 包:

  • Leadtools.Formats.Raster.Common
  • Leadtools.Document.Sdk

如果使用本地 DLL 引用,则需要以下 DLL。DLL 位于<INSTALL_DIR>\LEADTOOLS22\Bin\Dotnet4\x64:

  • Leadtools.dll
  • Leadtools.Codecs.dll
  • Leadtools.Codecs.Cmp.dll
  • Leadtools.Document.Writer.dll
  • Leadtools.Forms.Commands.dll
  • Leadtools.Ocr.dll
  • Leadtools.Ocr.LEADEngine

有关您的应用程序需要哪些 DLL 文件的完整列表,请参阅要包含在您的应用程序中的文件。

设置许可证文件

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

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

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

笔记

添加 LEADTOOLS NuGet 和本地引用以及设置许可证在添加引用和设置许可证教程 中有更详细的介绍。

添加机读旅行证件阅读器和处理代码

创建项目、添加参考和设置许可证后,就可以开始编码了。

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

[C#]

// Using block at the top
using System;
using System.IO;
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.Commands;
using Leadtools.Ocr;

添加一个名为的新方法,ExtractMRTD(RasterImage image)然后在方法内部调用它Main。在新方法中添加以下机读旅行证件检测和识别代码。该方法的参数将是载入的RasterImageRasterImage image = LoadImage(@"C:\LEADTOOLS22\Resources\Images\mrz_sample.jpg");。对于本教程,请使用此MRTD 示例图像。

[C#]

// Main method
static void Main(string[] args)
{
SetLicense();
RasterImage image = LoadImage(@"C:\LEADTOOLS22\Resources\Images\mrz_sample.jpg");
ExtractMRTD(image);
}

static RasterImage LoadImage(string filename)
{
using (RasterCodecs codecs = new RasterCodecs())
return codecs.Load(filename);
}

[C#]

static void ExtractMRTD(RasterImage image)
{
MRTDReader mrtdReader = new MRTDReader();
// Create the OCR Engine
using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD))
{
ocrEngine.Startup(null, null, null, @"C:\LEADTOOLS22\Bin\Common\OcrLEADRuntime");
mrtdReader.OcrEngine = ocrEngine;

// Process Image
mrtdReader.ProcessImage(image);
// Output values
if (mrtdReader.Errors == MRTDErrors.NoError)
{
foreach (var value in mrtdReader.Results)
{
Console.WriteLine(string.Format("Data Element Field: {0}", value.Key.ToString()));
Console.WriteLine(string.Format("Data Element Value: {0}", value.Value.ReadableValue));
Console.WriteLine(string.Format("Data Element Code : {0}", value.Value.MrzCharacters));
Console.WriteLine(string.Format("Data Element Valid: {0}", value.Value.IsValid.ToString()));
Console.WriteLine("************************************");
}
}
}
}

处理流

要处理 的使用MemoryStream,请将方法中的代码替换为LoadImage()以下代码:

[C#]

static RasterImage LoadImage(string filename)
{
using (RasterCodecs codecs = new RasterCodecs())
{
byte[] data = File.ReadAllBytes(filename);
using (MemoryStream ms = new MemoryStream(data))
return codecs.Load(ms);
}
}

运行项目

按F5或选择Debug -> Start Debugging运行项目。

如果步骤正确,应用程序将运行并显示护照图像的机读旅行证件信息。

以上便是如何检测和提取机读旅行证件 ,如果您还有其他疑问,欢迎咨询我们或者加入我们官方技术交流群。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

专注分布式架构 莱商银行的数字化转型实践

本文刊登于《金融电子化》杂志 2022 年 12 月下&#xff0c;作者魏汝浩为莱商银行首席信息官。2021 年 12 月 29 日&#xff0c;中国人民银行印发《金融科技发展规划&#xff08;2022—2025 年&#xff09;》&#xff08;银发〔2021〕335 号&#xff09;&#xff0c;提出新时期…

分享166个ASP源码,总有一款适合您

166个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/19W7FmY9nADL1Rge8e5uqiQ?pwdskhh 提取码&#xff1a;skhh import os import shutil import time from time import sleepimport requests from bs4 import BeautifulSoup from docx import Document from docx.sh…

Shader从入门到放弃(四) —— 绘制闪耀星际

前言 经过3个章节的学习&#xff0c;相信大家对shader编程也逐渐的有了一些感觉&#xff0c;所以这次我们玩个“大”的&#xff01;。 今天的学习内容是绘制“闪耀星际”&#xff0c;正如歌中唱的那样&#xff1a; 星际闪耀光影&#xff0c;落入你的眼睛&#xff0c;如迷人的…

Dubbo泛化调用

Dubbo泛化调用 1. 场景 场景一&#xff1a;我们要搭建一个统一的测试平台&#xff0c;可以让各个业务方在测试平台中通过输入接口、分组名、方法名以及参数值&#xff0c;在线测试自己发布的 RPC 服务。这时我们就有一个问题要解决&#xff0c;我们搭建统一的测试平台实际上是…

【论文速递】CVPR2022 - 泛化的小样本语义分割

【论文速递】CVPR2022 - 泛化的小样本语义分割 【论文原文】&#xff1a;Generalized Few-shot Semantic Segmentation 获取地址&#xff1a;https://openaccess.thecvf.com/content/CVPR2022/papers/Tian_Generalized_Few-Shot_Semantic_Segmentation_CVPR_2022_paper.pdf博…

【ROS2 入门】Jeston TX1 JetPack_4.6.3环境 ubuntu 18.04 ROS2 安装

大家好&#xff0c;我是虎哥&#xff0c;从今天开始&#xff0c;我将花一段时间&#xff0c;开始将自己从ROS1切换到ROS2&#xff0c;在上一篇中&#xff0c;我们再虚拟机环境中安装了 ROS2 eloquent版本&#xff0c;并完成了初步的验证&#xff0c;但是做为一个偏硬件的博主&a…

nginx禁止外网访问

1、安装 libmaxminddb 库 apt updateapt install libmaxminddb0 libmaxminddb-dev mmdb-bin上面安装的软件包是&#xff1a; libmaxminddb0 libmaxminddb-dev 是MaxMind地理定位数据库mmdb-bin – 二进制。 从命令行调用的程序。 使用此命令手动定位 IP 安装参考 2、下载geoi…

node学习笔记

阶段一 1 初始Node.js javascript 运行环境 1.2 Node.js中的javacript 运行环境 1.3 Node.js环境安装 百度 1.4 node.js 执行javaScript 代码 2 fs文件系统模块 2.1 fs文件系统模块概念 导入文件系统模块&#xff1a; const fs require(fs)fs.readFile() // 1 导入fs文件…

【进阶C语言】通讯录(后期会升级)

文章目录一.基本框架与功能二.头文件的详细内容三.函数的实现1.打印菜单2.初始化通讯录3.添加联系人信息4.打印联系人信息5.查找名字6.删除联系人信息7.查找联系人8.修改联系人信息9.排序联系人&#xff08;按照名字&#xff09;四.总结1.test.c2.contact.c3.contact.h一.基本框…

智能电风扇(stm32f103c8t6)(直流电机,热敏传感器)(TIM,ADC)

前言 我的毕业论文的课题 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、热敏传感器计算温度&#xff08;ADC采样单通道&#xff09; #include "stm32f10x.h" // Device header#define T25 298.15 #define B 3…

看完这篇 教你玩转渗透测试靶机vulnhub——MONEYBOX: 1

Vulnhub靶机MONEYBOX: 1渗透测试详解Vulnhub靶机介绍&#xff1a;Vulnhub靶机下载&#xff1a;Vulnhub靶机安装&#xff1a;Vulnhub靶机漏洞详解&#xff1a;①&#xff1a;信息收集&#xff1a;②&#xff1a;FTP匿名登入&#xff1a;③&#xff1a;SSH暴力破解④&#xff1a;…

Java操作Word模板产生全新内容Word

1. spire.doc的jar引用 首先我们需要用到国产word处理工具jar包spire.doc&#xff0c;可以通过maven仓库寻找&#xff0c;然后在pom文件中直接引用。 此处需要注意&#xff0c;我们需要使用的是spire.doc.free&#xff08;免费版的&#xff09;&#xff0c;切勿使用spire.doc&a…

c++ - 第23节 - C++的类型转换

1.C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与接收返回值类型不一致时&#xff0c;就需要发生类型转化&#xff0c;C语言中总共有两种形式的类型转换&#xff1a;隐式类型转换和…

业务安全情报 | 数十万元的数据报告,竟被50元批量转售

近期监测到某咨询公司针数据报告大量泄漏事件&#xff0c;该机构历年的数据报告以及近期更新的针对VIP会员的付费报告均在电商等渠道可以低价获取。 BSL-2022-a3c28号情报文件显示黑灰产通过作弊方式获取查看、下载权限&#xff0c;绕过限制将报告数据大量下载&#xff0c;并通…

javaEE初阶 — 认识文件

文章目录认识文件1. 树型结构组织和目录2. 文件路径&#xff08;Path&#xff09;2.1 绝对路径2.2 相对路径3. 文件的类型认识文件 文件分为 狭义 和 广义 两种 狭义的文件&#xff1a;指的是硬盘上的 文件 和 目录 广义的文件&#xff1a; 泛指计算机中很多的软硬件资源。操…

2022(一等奖)D926刘家峡库区潜在滑坡InSAR识别与分析

作品介绍 1 应用背景 滑坡是普遍存在于世界各地山区的主要灾害之一&#xff0c;严重威胁着人类的生命财产安全和自然环境。滑坡不但会直接破坏人类生命财产安全和建筑物&#xff0c;而且还会造成堰塞湖等次生灾害&#xff0c;进而对人类的生命财产安全和基础设施等造成二次破坏…

暴力破解 SSH

Kali 的 MSF 终端&#xff0c;对渗透目标主机 的 SSH 服务进行暴力破解。 破解的是否成功取决于字典和目标是否使用弱密码。 一&#xff0c;实验环境 分别是攻击机和靶机&#xff08;也可是其他目标服务器&#xff09; 二、利用 SSH 弱密码进行暴力破解 暴力破解最重要的要…

100 道 Linux 笔试题,能拿 80 分就算大神!

本套笔试题共100题&#xff0c;每题1分&#xff0c;共100分。&#xff08;参考答案在文章末尾&#xff09; 1.cron 后台常驻程序 (daemon) 用于&#xff1a; A. 负责文件在网络中的共享 B. 管理打印子系统 C. 跟踪管理系统信息和错误 D. 管理系统日常任务的调度 2.在大多数Li…

如何使用无标签数据进行预训练?

一、直观解释 简单来说就是“造目标”。也即人为地去构造一些子任务&#xff08;论文里的protext task&#xff09;&#xff0c;或者利用一些最基本的公理性常识&#xff0c;去设计“类似监督”的任务。所不同的是&#xff0c;我们引入的“类似监督”的任务通常是用来完成表征…

day13|559.n叉树的最大深度、222.完全二叉树的节点个数

559.n叉树的最大深度 给定一个 N 叉树&#xff0c;找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示&#xff0c;每组子节点由空值分隔&#xff08;请参见示例&#xff09;。 示例 1&#xff1a; 输入&#xff1a;r…