LEADTOOLS的支票读取和处理

发布时间:2015/10/23 00:10 发布者:iceman

返回博客中心

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);
}

clip_image001

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

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

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

clip_image002

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

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

clip_image003

其他的使用和注意事项

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

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

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

总结

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


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网