LEADTOOLS使用教程:支票读取和处理

LEADTOOLS的文档图像工具包系列包含了一个健壮的Check Scanning and Processing SDK,它广泛应用于各行各业的应用程序中,包括银行业、保险业和零售业。

简介

尽管信用卡和数字钱包试图取代它,但是支票依然是支付方式和金融交易中非常普遍和实用的方式。消费者和企业依然依赖传统的纸质金融交易,但这并不意味技术无法简化存储,提高客户满意度。许多ATM现在可以接受支票并自动读取它的值,同时有一部分机构推出了在智能手机或平板上直接存款的应用程序,无需去银行或使用ATM。金融机构是如何实现这些功能的呢?这会给不是金融行业的其他业务带来什么好处呢?

LEADTOOLS的文档图像工具包系列包含了一个健壮的Check Scanning and Processing SDK,它广泛应用于各行各业的应用程序中,包括银行业、保险业和零售业。它结合了高级磁性墨水字符识别(MICR)和光学字符识别(OCR),可以快速和准确提取扫描仪或移动电子摄像头捕捉的图像中的每一个相关字段和数据。高级图像处理算法如抗扭斜和透视校正提高了低质量图像的识别准确率。此外,LEADTOOLS包括各种跨平台的编程接口,允许开发者创建iOS、Android和Windows Phone设备上的本地应用。

除了金融部门,Check Scanning SDK可以实现独一无二的解决方案,如基于平板电脑的销售亭,接受支票为付款方式。此外,任何接受支票的业务可以使用LEADTOOLS的支票扫描和图像处理功能保护客户,减少图像上的敏感信息。

使用LEADTOOLS支票阅读器

LEADTOOLS支票扫描和处理技术背后的主力是BankCheckReader类。这个高级对象封装了整个过程,只需几行代码就能从支票中读取数据。设置BankCheckReader时,只需给它一个OCR引擎实例,一切就OK了。

// 创建支票阅读器
BankCheckReader checkReader = new BankCheckReader();
// 通过支票阅读器创建和分配OCR引擎
IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false);
ocrEngine.Startup(null, null, null, null);
checkReader.OcrEngine = ocrEngine;

一旦初始化了BankCheckReader,它的ProcessImage方法就会使用OCR引擎查找每个字段。由于支票是半结构化的表单,因此一些字符如“支付”、“日期”、“数量”等会出现在大多数文档的相同位置。当它识别出这些标题后,LEADTOOLS会检查每个标题附近的图像,准确提取字段内的信息。

当处理时,每个字段的值和边界矩形会被添加到BankCheckField对象的字典中。一旦完成,就可以枚举BankCheckReader.Results成员显示你的业务逻辑。如下图所示,结果会显示在DataGridView中,同时还有一个单击处理程序,使用边界矩形可以绘制一个高亮注释,提取字段值中的裁剪和放大图像。

// 加载并处理图像
RasterImage rasterImage = rasterCodecs.Load(fileName);
checkReader.ProcessImage(rasterImage);
// 通过BankCheckFields循环,显示结果
foreach (var item in checkReader.Results)
{
   DataGridViewRow row = new DataGridViewRow();
   row.CreateCells(dataGridView1, item.Key, item.Value.Text);
   row.Tag = item.Value;
   dataGridView1.Rows.Add(row);
}

针对移动设备的专业图像处理:抗扭斜角度

在自动化支票扫描的需求中,手机是一个主要驱动力。然而,由于低DPI图像、较差的照明和角度,获取高质量的图像很难。我们可以添加十字准线和矩形框帮助用户获取更好的图像,但是LEADTOOLS更深入了一步,考虑了更多类似的问题。

使用PerspectiveDeskewCommand,开发者可以开发更加用户友好和准确的应用程序,为用户群提供了更大的灵活性。使用平板电脑或手机拍照时,大多数照片的拍摄是有角度的,如下图所示:

左上角是最理想的情况,图片非常端正。然而一般情况下拍摄的图像都是扭斜的。下面的图像更糟,这个图像的拍摄角度接近二十度,且没有角。使用两行代码,LEADTOOLS就可以自动校正所有的问题,同时还删除了背景。

PerspectiveDeskewCommand cmd = new PerspectiveDeskewCommand();
cmd.Run(rasterImageViewer1.Image);

其他使用和注意事项

除了银行的机打支票,BankCheckReader还可以处理个人支票。个人支票的字段和位置一般都是相同的,但是手写文本和个性化的设计提高了识别难度。在这种情况下,拥有一个综合的文档图像工具包非常重要。LEADTOOLS拥有一个广泛的文档清理和图像扩展算法集合,可以去除背景,为OCR提供一个具有更高对比度的文本区域。

此外,授权的签名字段也很棘手。在大多数情况下不需要这个值,但是验证签名也很必要。我们在BankCheckField中提供了边界矩形,在剪切的图像上使用BlankPageDetectorCommand就可以确定是否已签名。

在这两种情况中,大多数处理都可以自动化或简化,外加一些人工验证。我们不是手动输入所有数据,只有丢失字段或置信度以下的结果需要验证和修正。例如,当实现移动存款时,每一个机打字段和MICR字符串都会被自动检索,但是用户可能需要输入或验证金额。当然可以创建更有效的Proof Operator应用程序,你可以使用边界矩形、图像处理和查看器控件自动放大需要的字段,如金额和签名。

总结

支票可能会在当今的市场上慢慢消失,但是类似于LEADTOOLS Check Scanning SDK的文档图像开发包可以让顾客感到愉快,让他们体会到与移动数字方式一样的速度和便捷。LEADTOOLS快速准备的MICR和OCR引擎、图像处理和跨平台的开发库为银行业、保险机构及更现代的销售点提供了广泛的发展机会。

查看产品详情evget.com/supplier/188

时间: 2024-10-25 20:01:40

LEADTOOLS使用教程:支票读取和处理的相关文章

PHP教程-php读取输出其他文件方法

ob_start(); iconv('utf-8','gb2312',readfile('1.html')); //直接输出文本内容 echo '<hr>'; $data = file_get_contents('./1.html',null,null,0,10); var_dump($data);//输出字符串 echo '<hr>'; $data = file('./1.html'); var_dump($data);//输出数组 echo '<hr>'; $str

c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using System.Collections.Generic;using System.IO; //创建文件流对象        using (FileStream filesrc = File.OpenRead(@"C:\Users\Administrator\Desktop\123.xls"))        {            //工作簿对象获取

Lush手册——第一章 简介

简介 本章将展示Lush及其能力与特性. 1.1 Lush展示 Lush是一门面向对象的编程语言,是为对大规模数值运算与图形化应用感兴趣的研究人员.实验人员和工程师设计的.Lush用于以下场景,即想要将高级的.弱类型的解释性语言的灵活性,强类型的.本地编译型的语言的高效性,还有与C.C++等语言编写的代码容易结合这些特性组合在一起. 在与解释型语言(如Python.Perl.Matlab.S+甚至BASIC)和使用编译型语言(例如C语言)结合的相关工程上,Lush的优势尤其意义重大.通过使用Lu

C#解析Excel汇总

项目中多次用到对Excel的操作,想想有必要对这些方式.方法进行汇总,以便能够在整体上有个清晰的认识,本篇文章主要讨论使用C#对Excel操作.解析的三种方式:OleDb.Com组件.NPOI 1.OleDb 该方法简单快速,能够操作高版本的Excel,缺点是不够灵活,只能对Excel进行简单的读写操作.在最开始接触编程的时候,便有所耳闻:Object Link andembed(对象连接与嵌入),其主要目的是为了兼容更多类型的数据源.是较底层化的操作,在使用上非常复杂,另外一个特点是可以直接使

12种方式让程序员快速掌握一门编程语言

[IT168 评论]你决定学习一门新的编程语言了吗?怎么开始呢?本文列举了12项关于快速掌握一门编程语言的方法,如果你有其他更好的建议,欢迎分享! 1.比较与之类似的编程语言 这点对于程序员而言,应该很容易吧!你可以通过观看该语言的教程或读取示例代码,来尝试猜测该语言的特点,并将其记录下来,比如: ·该语言与哪些编程语言相似,相似点是什么? ·该语言的不同之处在哪,哪些特点超乎了你的想象. ·该语言主要用来干什么呢? 如果条件允许,你可以寻找身边同在学习该门编程语言的朋友,互相交流,或许会有更清

Haskell手撸Softmax回归实现MNIST手写识别

Haskell手撸Softmax回归实现MNIST手写识别 前言 初学Haskell,看的书是Learn You a Haskell for Great Good, 才刚看到Making Our Own Types and Typeclasses这一章. 为了加深对Haskell的理解,便动手写了个Softmax回归.纯粹造轮子,只用了base. 显示图片虽然用了OpenGL,但是本文不会提到关于OpenGL的内容.虽说是造轮子, 但是这轮子造得还是使我受益匪浅.Softmax回归方面的内容参考

Teaching Machines to Understand Us 让机器理解我们 之二 深度学习的历史

Deep history 深度学习的历史 The roots of deep learning reach back further than LeCun's time at Bell Labs. He and a few others who pioneered the technique were actually resuscitating a long-dead idea in artificial intelligence. 深度学习的研究之根是在LeCun在Bell实验室研究之前的.

宏基4752g 开机进度条卡到75%左右,解决办法

起因:更新win10推送的更新补丁,失败自动回退.开机进度条只能走到75%,bios进不去,最后就卡在开机的logo.(还有其他人是win7直接升级win10,也出现了这种情况.)解决办法:重刷bios.重刷bios,我知道的有4种:1.直接在window系统下更新(系统已挂,此种情况行不通)2.盲刷,据说是使用u盘引导,按组合键(尝试了很久,用了很多组合键,皆无法成功)3.买编程器和夹子(解决此情况采用的的办法)4.只使用编程器和SOP8宽座(非到万不得已不使用,动手能力强的使用)我用的是第3

Handbook of Document Image Processing and Recognition文档图像处理与识别手册

编辑:David Doermann(马里兰大学)Karl Tombre(洛林大学) 前言 In the beginning, there was only OCR. After some false starts, OCR became a competitive commercial enterprise in the 1950’s. A decade later there were more than 50 manufacturers in the US alone. With the a