原文网址:
作为LEAD Technologies 25周年纪念的一部分,我们正在搞一个“25天收集25个项目来展示LEAD功能强度和易用性”的活动。今天要展示的项目来自于哈迪的分享。
如果您一直在跟踪,其实这是我们的第25个项目,也就是我们的“25天收集25个项目”系列的最后一个。但是,您无需难过,因为我们还将持续地在博客和论坛中定期发布这样的实例。所以,与我们保持联系!如果您错过了其中任何一个,请回顾一下我们的之前的项目,那里有一个随时记录每个被发布项目的列表。
最终效果图
它是做什么的
该ASP.NET C#应用程序可以使用LEADTOOLS第19版来识别名片中的文本区域。
所使用的功能
· OCR
· Viewers
开发进程日志
大家好,我是哈迪。我正在编写这样一个示例应用程序,它可以允许用户上传一张名片上的图像,然后他们可以在将文本上传为联系人时选择OCR能够识别的区域。
我所使用的是一个ASP.NET应用程序,且我可以使用它来将后台代码中的服务器端C#代码与客户端的HTML5和JavaScript代码合并。为了显示用户希望从名片中识别出来的区域,我将使用LEADTOOLS JavaScript的ImageViewer和Annotation SDK;而在服务器端,我将使用.NET注释和OCR SDK。
启动时,我需要在用户界面上创建ASPX默认页面。我希望用户能够用它来上传图片、显示图片,并通过添加或删除注释的矩形区域来描绘所需的区域。
我希望能够在服务器端获取所上传的文件并使用LEADTOOLS 的OCR AutoZone方法,这样才可以获得一些可供用户在前端操作的预制区域。我还需要确保上传的文件是一个可以在浏览器中显示的有效的MIME类型;如果不是该类型的话,需要将其转换为该类型文件。
我用该方法AutoZone来获取这些区域,用LEADTOOLS Annotations来保存包含区域边界的XML文件。这样,我可以很容易地在前端向用户显示这些区域。我需要在JavaScript上增加一个可以加载图像并显示XML区域文件的功能。我还需要从服务器调用JavaScript,所以我使用了System.Web.Ui命名空间的ClientScriptManager.RegisterStartupScript 方法。
既然已经知道JavaScript中的XML文件名,那么我还需要用LEADTOOLS.Annotations.Core.JS命名空间的AnnCodecs来加载它。我可以使用XMLHttpRequest的开放和发送方法来打开XML文件,并处理onreadystatechange事件中的结果。为了加载该图像,我只需要为我传递给函数的图像文件设置其ImageViewer.ImageUrl属性。使用LEADTOOLS的 ImageViewer,可以很容易地对图像进行加载:
虽然大部分的功能已经实现,我还需要添加一些额外的功能,以使用户能够操纵这些区域。我希望用户能够设置这些区域的名称,这样他们就能够了解那些字段属于哪里。为此,我现在使用的是AnnObject.AnnLabel属性:
我所添加的一组其他功能可以允许用户删除选定的区域或清除所有的区域。只要使用AnnAutomation.DeleteObject 和DeleteObjects 方法,这都是很容易实现的:
既然这些附加功能都已经被实现,那么最后一个步骤就是要识别新的区域。由于该项目需要加载图像,并使用OcrEngine 到AutoZone,我只好不停地在服务器内存中保存它们,以便使一切准备就绪。我只需要用PageMethods 和.NET 的AnnCodecs 来将新的XML数据传回服务器,以便加载新的XML文件,并将这些区域从中区分出来。一旦我完成了对这些区域的更新,我就会调用该OcrDocument.Recognize方法,然后用识别出的文本来提醒用户。
总的来说,这个程序写起来很有趣,因为它教会了我很多关于客户端与服务器交互的知识。使用LEADTOOLS库使编写过程变得更加更简单,因为如果没有它的话,要实现它的任何一个环节(注解,OCR,浏览器)都将是极其困难的。如果有更多时间的话,我会去了解一下如何将识别出的文本移植到一个实际的Outlook或谷歌联系人。
下载该项目
该示例项目的源代码您可以点击进行下载。
04 Linux OCR, Barcode and Format Conversion Batch Processor.zip
支持
关于其他产品的更多信息,请访问我们的官方网站,
欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。
同时欢迎您使用评估版期间的免费技术支持。
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。