如何处理纸质支票读取及识别的功能

2015-10-28 14:01:50来源:作者:极客头条人点击

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引擎、图像处理和跨平台的开发库为银行业、保险机构及更现代的销售点提供了广泛的发展机会。

转载声明: 欢迎将本站文章进行转载、演绎或用于商业目的,转载时请注明以下信息 文章转自:葡萄城控件产品博客,http://blog.gcpowertools.com.cn 原文地址:http://blog.gcpowertools.com.cn/post/2015/10/22/Reading-and-Processing-Checks-with-LEADTOOLS.aspx

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台