使用LEADTOOLS创建32/64位的OCR 文字识别程序

发布时间:2015/06/13 00:06 发布者:AvoCaDolol

返回博客中心

简介

LEADTOOLS是世界一流的图像开发工具包,以“程序员友好”的方式为您提供高质量、高性能、高稳定性的图像组件。开发者可以明显减少应用程序的开发时间,从而最大化生产率,保证了最大可能的投资回报。

LEADTOOLS在不牺牲控件的基础上进行了全新设计,极大地简化了开发。一个非常重要的改进是一组用于扫描图像光学文字识别(OCR)的高水准.NET类。新框架非常直观、灵活和易于理解。程序员仅用三行代码就能使用OCR功能,同时还能保证控件达到特定应用程序或工作流要求的必须水平。

在本文中,我们将为您介绍全新.NET OCR类的主要功能,为您提供创建一个OCR应用程序的步骤和示例代码。点击文章底部链接,下载功能齐全的全功能试用版SDK体验吧!

关键功能

LEADTOOLS提供了以下方法:

· 识别和导出文本,你可以从多种文本Txt、Word、数据库或Excel文件格式中选择。

· 在单线程或多线程环境中执行OCR操作,且优化了客户端操作。

· 支持多个OCR引擎,使用常见的.NET类库从用户层次抽象出它们。不需要改变应用程序的代码,就能在多个引擎间转换。

· 选择识别文本的语种。包括英语、简体中文、繁体中文、日语、韩语、法语、德语、意大利语、挪威语、葡萄牙语、俄语、西班牙语或瑞典语等等超过104种。

· 手动或自动将复杂的页面分为文本区域、图像区域、表格区域、框线、标题和页脚。

· 在识别前设置精度阈值,控制识别的准确性。

· 学习、保存和加载相同文档的识别数据。SDK可以学习识别的结果,并使用OCR文本验证系统提高后续识别率。

· 可以识别几乎任何字体的文本。

· 使用内置的用户字典提高识别的准确率。

· 自动检测传真、点阵式打印机和其他模糊文档,然后做出相应的补偿。

· 处理文本和图形。识别软件可以区分半色调图形和文本,为复合文档处理系统提供了基础。以40多种格式保存文档,包括 Adobe PDF和PDF/A、MS Word、MS Excel和各种ASCII 和UNICODE文本。

环境

LEADTOOLS OCR .NET类库有Win32和x64版本,支持以下环境的软件开发:

· Windows 8 (32 和64-bit 版本)

· Windows 7 (32 和64-bit 版本)

· Windows 2008 (32 和64-bit 版本)

· Windows Vista (32 和64-bit 版本)

· Windows XP (32 和64-bit 版本)

· Windows 2000

提供的示例可以在Visual Studio 2005、2008、2012、2013上运行。

LEADTOOLS OCR是怎样工作的?

LEADTOOLS使用自主研发的OCR引擎,使用这个类来和页面文档交互。LEADTOOLS OCR和安装在系统上的OCR引擎间可以使用这个类来进行调用。这个OCR类是一个内部结构,包括了识别、获取并设置信息以及文本验证时的所有必要信息。

下面是识别一个或多个页面的一般步骤。若想了解更多详细信息,你可以下载LEADTOOLS全功能试用版,查看.NET帮助里的“使用LEADTOOLS .NET OCR”主题:

1. 选择你想使用的引擎类型,创建一个IOcrEngine接口的实例。

2. 使用 IOcrEngine.Startup 方法启动OCR引擎。

3. 创建一个单页或多页的OCR文档。

4. 手动或自动在页面上建立识别区域。(可选。有无区域均可识别页面。)

5. 可选。设置OCR引擎要使用的语言。(默认为英语)

6. 可选。设置拼写检查语言。(默认为英文)

7. 可选。设置任何特殊的识别模块选项。当页面包含手动或自动创建的区域时才需要。

8. 识别。

9. 若需要,保存识别结果。结果可以保存到一个文件或内存中。

10. 结束时关闭OCR引擎。

4、5、6、7步以任意顺序执行都可以,只要在启动OCR引擎之后识别页面之前执行就可以。

在你的.NET应用程序中添加theLeadtools.Forms.Ocr.dll 组件的引用,就可以使用LEADTOOLS for .NET OCR。这个组件包括了使用LEADTOOLS OCR编程时使用的各种接口、类、结构和委托。

由于工具包支持多个引擎,因此与引擎连接的真正代码存储在一个单独的组件中,一旦IOcrEngine 接口的实例被创建,就动态加载这个组件。因此,你必须保证你计划使用的引擎组件就在 Leadtools.Forms.Ocr.dll的旁边。你可以在项目中添加引擎组件,自动检测依赖,尽管这不是LEADTOOLS要求的。

代码

以下代码展示了如何使用代码执行上述操作:

// *** 第一步:选择引擎类型,创建接口的实例。
// 我们将使用LEADTOOLS OCR Plus 引擎,并在同一进程中使用它。
IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Plus, false);
// ***第二步:启动引擎。
// 使用默认的参数。
ocrEngine.Startup(null, null, null);
// ***第三步:创建一个单页或多页的OCR文档
IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument();
// 将一个多页TIF图像的所有页面添加到文档中
ocrDocument.Pages.AddPages(@"C:\Images\Ocr.tif", 1, -1, null);
// *** 第四步:手动或自动在页面上创建区域
// 自动创建区域
ocrDocument.Pages.AutoZone(null);
// *** 第五步:(可选)设置OCR引擎要使用的语言
// 使用英语和德语
ocrEngine.LanguageManager.EnableLanguages(new string[] { "en", "zh-Hans"});
// *** 第六步:(可选)设置拼写检查语言
// 启动拼写检查系统,将英语设为拼写语言
ocrEngine.SpellCheckManager.Enabled = true;
ocrEngine.SpellCheckManager.SpellLanguage = "en";
// *** 第七步:(可选)设置任何特殊的识别模块选项
//将第一页中第一个区域的fill方法设置为默认的
OcrZone ocrZone = ocrDocument.Pages[0].Zones[0];
ocrZone.FillMethod = OcrZoneFillMethod.Default;
ocrDocument.Pages[0].Zones[0] = ocrZone;
// ***第八步:识别
ocrDocument.Pages.Recognize(null);
// *** 第九步:保存识别结果
// 将结果保存为一个PDF文件
ocrDocument.Save(@"C:\Images\Document.pdf", OcrDocumentFormat.PdfA, null);
ocrDocument.Dispose();
// *** 第十步:当结束时关闭OCR引擎
ocrEngine.Shutdown();
ocrEngine.Dispose();

最后,下面的示例使用一劳永逸的IOcrAutoRecognizeManager接口执行了相同的操作:

// 创建引擎实例
using (IOcrEngine ocrEngine = 
OcrEngineManager.CreateEngine(OcrEngineType.Plus, false))
{
    // 启动引擎
    ocrEngine.Startup(null, null, null);
    // 将多页TIF图像转化为一个PDF文档
    ocrEngine.AutoRecognizeManager.Run(
    @"C:\Images\Ocr.tif",
    @"C:\Images\Document.pdf",
    null,
    OcrDocumentFormat.PdfA,
    null);
}

 

总结

LEADTOOLS为开发者提供了世界一流的稳定图像库。易用的高级编程接口使业务关键型应用程序的快速开发变为可能,新设计简化了开发。

从以上示例我们可以看出,LEAD科技全新的高级OCR接口和设计提供了一个高效的、灵活的解决方案,可以将扫描图像转化为可编辑的、可搜索的文档。提供的类允许你控制整个过程,使用一个方法调用,你就可以启动引擎,将150多种支持的图像格式转化为常见的文档格式。

OCR是LEADTOOOLS提供的诸多功能中的一个。有关更多信息,请访问我们的网站或下载免费的功能齐全的评估版SDK。

示例所需的开发包

LEADTOOLS提供了若干工具包、插件和节省费用的产品包,它们都能提供OCR技术。我们为您推荐Recognition Imaging 或Document Imaging Suite,包含了Document Imaging SDK以及OCR、输出可搜索PDF所需的一切插件。关于产品的更多选择,请联系我们的销售部门。

如果您在决定购买前需要试用,欢迎下载LEADTOOLS全功能评估版,可以免费试用60天哦。

支持

关于其他产品的更多信息,请访问我们的官方网站

欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。

同时欢迎您使用评估版期间的免费技术支持


关于葡萄城

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

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