手动识别和处理形式——c#。net核心

本教程展示了如何创建一个主组形式,认识、表单和流程在c#中使用LEADTOOLS低级形式接口。net核心应用程序。

概述
总结 本教程介绍了如何识别和处理形式在c#中使用低级形式识别和处理的。net核心控制台应用程序。
完成时间 30分钟
Visual Studio项目 下载教程项目(2 KB)
平台 c# . net核心控制台应用程序
IDE Visual Studio 2017中,2019年
开发许可 下载LEADTOOLS
试试用另一种语言

所需的知识

熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前手动识别和处理形式——c#。net核心教程。

创建项目并添加LEADTOOLS引用

从项目中创建的副本添加引用和设置一个许可证教程。如果你没有这个项目,按照这个教程中的步骤创建它。

的引用需要取决于项目的目的。可以通过添加引用NuGet包。

本教程需要以下NuGet包:

对于一个完整的列表的应用程序所需的DLL文件,请参考文件包含在您的应用程序

设置许可文件

许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可

有两种类型的运行时许可证:

请注意

添加LEADTOOLS NuGet引用和设置许可中会详细介绍添加引用和设置一个许可证教程。

初始化FormRecognitionEngine、RasterCodes IOcrEngine, FormProcessingEngine

与项目创建、添加引用,许可,可以开始编码。

解决方案资源管理器,打开Program.cs。添加以下语句的使用块的顶部Program.cs

c#
使用系统;使用先;使用System.Collections.Generic;使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Forms.Common;使用Leadtools.Ocr;使用Leadtools.Forms.Recognition;使用Leadtools.Forms.Recognition.Ocr;使用Leadtools.Forms.Processing;

添加下面的全局变量程序类。

c#
私人静态FormRecognitionEngine recognitionEngine;私人静态RasterCodecs编解码器;私人静态IOcrEngine formsOCREngine;私人静态FormProcessingEngine processingEngine;

添加一个新方法程序类命名InitFormsEngines ()。调用InitFormsEngines ()方法在Main ()以下方法设置许可调用,如下所示。

c#
静态无效主要(字符串[]参数){如果(! SetLicense ())Console.WriteLine (“错误设置许可证”);其他的Console.WriteLine (“许可文件已成功设置”);InitFormsEngines ();CreateMasterFormAttributes ();RecognizeForm ();}

将下面的代码添加到InitFormsEngines ()初始化方法FormRecognitionEngine,FormProcessingEngine,RasterCodecs,IOcrEngine对象。

c#
静态无效InitFormsEngines (){Console.WriteLine (“初始化引擎”);编解码器=RasterCodecs ();recognitionEngine =FormRecognitionEngine ();processingEngine =FormProcessingEngine ();formsOCREngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD);formsOCREngine.Startup(编解码器,,,@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”);OcrObjectsManager OcrObjectsManager =OcrObjectsManager (formsOCREngine);ocrObjectsManager。引擎= formsOCREngine;recognitionEngine.ObjectsManagers.Add (ocrObjectsManager);Console.WriteLine (“引擎初始化成功”);}

添加创建主表单属性代码

程序类中添加两个新方法命名CreateMasterFormAttributes ()RecognizeForm ()。这两个新方法将被称为内Main ()方法,以下InitFormsEngines ()方法,如上所示。确保CreateMasterFormAttributes ()以上方法被调用RecognizeForm ()方法,如主表单的属性之前需要创建表单可以被认可。

将下面的代码添加到CreateMasterFormAttributes ()方法来创建主表单属性和添加主表单FormsRecognitionEngine对象。

c#
私人静态无效CreateMasterFormAttributes (){Console.WriteLine (“处理主表单”);字符串[]masterFileNames = Directory.GetFiles (@ " C: \ LEADTOOLS21 \ \ \ \ MasterForm集形式\ OCR图像资源”,“* .tif”,SearchOption.AllDirectories);foreach(字符串masterFileNamemasterFileNames){字符串formName = Path.GetFileNameWithoutExtension (masterFileName);使用(RasterImage图像=编解码器。加载(masterFileName 0 CodecsLoadByteOrder。BgrOrGray 1,1)){FormRecognitionAttributes masterFormAttributes = recognitionEngine。CreateMasterForm (formName Guid.Empty,);(int我= 0;我< image.PageCount;我+ +){的形象。页面= i + 1;recognitionEngine。AddMasterFormPage (masterFormAttributes形象,);}recognitionEngine.CloseMasterForm (masterFormAttributes);文件。WriteAllBytes (formName +“。斌”masterFormAttributes.GetData ());}}Console.WriteLine (“主表单处理完成”);Console.WriteLine (“= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ");}

将下面的代码添加到RecognizeForm ()方法识别了集合的形式从一个主表单。

c#
私人静态无效RecognizeForm (){Console.WriteLine (“认识形式\ n”);varGetProjectDirectory = Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly () .Location);字符串formToRecognize =@“C: \ LEADTOOLS21 \资源\ \图片形式\形式识别\ OCR \ W9_OCR_Filled.tif”;使用(RasterImage图像=编解码器。加载(formToRecognize 0 CodecsLoadByteOrder。BgrOrGray 1,1)){FormRecognitionAttributes filledFormAttributes = recognitionEngine.CreateForm ();(int我= 0;我< image.PageCount;我+ +){的形象。页面= i + 1;recognitionEngine。AddFormPage (filledFormAttributes形象,);}recognitionEngine.CloseForm (filledFormAttributes);字符串resultMessage =“表单不能认可”;字符串[]masterFileNames = Directory.GetFiles (GetProjectDirectory,“*。斌”);foreach(字符串masterFileNamemasterFileNames){字符串fieldsfName = Path.GetFileNameWithoutExtension (masterFileName) +“xml”;字符串fieldsfullPath = Path.Combine (@ " C: \ LEADTOOLS21 \ \ \ \ MasterForm集形式\ OCR图像资源”,fieldsfName);processingEngine.LoadFields (fieldsfullPath);FormRecognitionAttributes masterFormAttributes =FormRecognitionAttributes ();masterFormAttributes.SetData (File.ReadAllBytes (masterFileName));FormRecognitionResult recognitionResult = recognitionEngine。CompareForm (masterFormAttributes filledFormAttributes,);如果(recognitionResult。信心> = 80){列出< PageAlignment >对齐=列表< PageAlignment > ();(intk = 0;k < recognitionResult.PageResults.Count;k + +)alignment.Add (recognitionResult.PageResults [k] .Alignment);resultMessage = $“这种形式被认为是一个{Path.GetFileNameWithoutExtension (masterFileName)}”;ProcessForm(图片、对齐方式);打破;}}Console.WriteLine (resultMessage“识别结果”);Console.WriteLine (“= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \ n ");}}

请注意

运送和安装LEADTOOLS SDK示例主形成样本集和填充的表单进行识别和处理。本教程使用这些样品。安装在示例文件< INSTALL_DIR > \ LEADTOOLS21 \ \ \图片形式的资源

添加流程表单的代码

程序类添加一个新方法,ProcessForm (RasterImage形象,列表< PageAlignment >对齐)。在调用此方法RecognizeForm ()方法前一步骤所示。

c#
私人静态无效ProcessForm (RasterImage形象,列表< PageAlignment >对齐){processingEngine。OcrEngine = formsOCREngine;字符串resultsMessage =字符串空虚;processingEngine。过程(图像对齐);foreach(FormPage FormPageprocessingEngine.Pages)foreach(FormField字段formPage)如果(字段! =)resultsMessage = $“{resultsMessage}{字段。}={(字段名称。结果TextFormFieldResult)。text} \ n”;如果(字符串.IsNullOrEmpty (resultsMessage))Console.WriteLine (“没有加工领域”,“FieldProcessing结果”);其他的Console.WriteLine (resultsMessage”字段ProcessingResults”);}

关闭OCR引擎

主要方法,添加formsOCREngine.Shutdown ()下代码RecognizeForm ()方法正确地关闭了OCR引擎。的Main (string [] args)部分现在应该看起来像:

c#
静态无效主要(字符串[]参数){如果(! SetLicense ())Console.WriteLine (“错误设置许可证”);其他的Console.WriteLine (“许可文件已成功设置”);InitFormsEngines ();CreateMasterFormAttributes ();RecognizeForm ();如果(formsOCREngine ! =& & formsOCREngine.IsStarted)formsOCREngine.Shutdown ();}

运行该项目

按运行项目F5,或通过选择调试- >开始调试

如果步骤正确,显示控制台和应用公认的形式随着加工领域。对于这个示例,使用W9形式与6填充字段:企业名称、地址,城市,州,邮编,和名称。

识别和处理结果显示到控制台。

总结

本教程展示了如何创建一组属性从主形式FormRecognitionAttributes类,认识到使用一种形式FormRecognitionEngine类,和流程表单字段并显示到控制台使用的结果FormProcessingEngine类。

另请参阅

net
iOS
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。