本教程展示了如何使用LEADTOOLS SDK在c# . net 6控制台应用程序中加载和保存OCR区域。
| 概述 | |
|---|---|
| 总结 | 本教程将介绍如何在c# . net 6控制台应用程序中使用OCR区域。 |
| 完成时间 | 30分钟 |
| Visual Studio项目 | 下载教程项目(1kb) |
| 平台 | c# .NET 6控制台应用程序 |
| IDE | Visual Studio 2022 |
| 运行时目标 | .NET 6或更高版本 |
| 开发许可 | 下载LEADTOOLS |
| 用另一种语言试试 |
|
步骤熟悉创建项目的基本步骤添加引用和设置License教程,在工作之前加载和保存OCR区域- c# .NET 6教程。
从以下两个主题之一创建的项目副本开始,具体取决于平台:
如果您没有该项目,请按照相关教程中的步骤创建它。
所需要的参考资料取决于项目的目的。引用可以通过NuGet包添加。
本教程需要以下NuGet包:
Leadtools。光学字符识别有关应用程序需要哪些DLL文件的完整列表,请参阅你的申请中包含的文件.
许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中详细介绍了添加LEADTOOLS NuGet引用和设置许可添加引用和设置License教程。
随着项目的创建、引用的添加和许可的设置,编码就可以开始了。
在解决方案资源管理器,打开Program.cs.将下列语句添加到使用块的顶部Program.cs.
使用系统;使用先;使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Ocr;
控件中添加一个新方法程序类命名LoadandSaveOcrZones ().调用LoadandSaveOcrZones ()方法中的Main ()方法下面设置许可代码,如下所示。
静态无效主要(字符串[]参数){如果(! InitLEAD ())控制台。WriteLine (“设置许可证错误”);其他的控制台。WriteLine ("License文件设置成功");LoadandSaveOcrZones ();}
将下面的代码添加到LoadandSaveOcrZones ()方法将OCR区域加载到IOcrPage,将OCR区域属性输出到控制台,以编程方式添加新的OCR区域,然后将OCR区域导出到文件。
静态无效LoadandSaveOcrZones (){使用(RasterCodecs codecs =新RasterCodecs ())使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(ocrengintype . lead)){ocrEngine。启动(编解码器,零,零,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);字符串zonesFile =@" OCR区域文件路径";字符串imageFile =@"创建OCR页面的样本图像";字符串zonesOutFile =@"保存OCR区域文件的路径";//将TIFF文件加载为图像RasterImage image = ocreengine . rastercodecsinstance。负载(imageFile, 1);使用(IOcrPage ocrPage = ocrEngine。CreatePage(图片,OcrImageSharingMode.None)){控制台。WriteLine ($”{ocrPage.Zones。IOcrPage创建后的分区。\n");ocrPage.LoadZones (zonesFile);控制台。WriteLine ($”{ocrPage.Zones。从文件中加载分区后计算分区。\n");foreach(OcrZone OcrZone在ocrPage.Zones){intindex = ocrPage.Zones.IndexOf(ocrZone);控制台。WriteLine ("区域索引:{0}"、指数);控制台。WriteLine (Id {0}, ocrZone.Id);控制台。WriteLine ("边界{0}", ocrZone.Bounds);控制台。WriteLine (“ZoneType{0}”, ocrZone.ZoneType);控制台。WriteLine (" CharacterFilters: {0}", ocrZone.CharacterFilters);控制台。WriteLine ("----------------------------------");}//添加一个额外的zone,这是我们自定义的zoneOcrZone zone =新OcrZone ();区。Name =“自定义区”;区。ZoneType = OcrZoneType.Text;区。边界=新LeadRect(10,10, ocrPage。宽度- 20,100);ocrPage.Zones.Add(区);控制台。WriteLine ($”{ocrPage.Zones。计数}手动添加分区后的分区。\n");ocrPage.SaveZones (zonesOutFile);控制台。WriteLine ($"区域已成功保存到{zonesOutFile}");控制台。WriteLine (“按任意键退出…”);控制台。ReadKey (真正的);}}}
要从内存流加载图像,请使用以下代码而不是直接从文件加载:
RasterImage形象;字节[] imageData = File.ReadAllBytes(imageFile);使用(MemoryStream imageStream =新MemoryStream (imageData))image = ocrEngine.RasterCodecsInstance.Load(imageStream);
要从内存流加载OCR区域文件,请替换ocrPage.LoadZones (zonesFile)使用以下代码:
字节[] zonesData = File.ReadAllBytes(zonesFile);使用(内存流zonesStream =新MemoryStream (zonesData))ocrPage.LoadZones (zonesStream);
要将OCR区域保存到内存流,请使用下面的代码代替ocrPage.SaveZones (zonesOutFile)
使用(内存流zonesOutStream =新MemoryStream ())ocrPage.SaveZones (zonesOutStream);
按下运行项目F5,或选择Debug ->开始调试.
如果正确地执行了这些步骤,则会出现控制台,应用程序将创建一个IOcrPage对象,从指定的文件中加载OCR区域,添加一个新的OcrZone到IOcrPage,然后以XML格式将分区导出到指定的文件路径。
属性来处理OCR区域OCRZone结构。此外,我们还介绍了如何使用IOcrEngine而且IOcrPage接口。