本教程展示了如何使用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,这是我们自定义的zone
OcrZone 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
接口。