加载和保存OCR区- c#控制台

本教程展示了如何创建一个c# Windows控制台应用程序,它使用LEADTOOLS SDK加载和保存OCR区。

概述
总结 本教程介绍了如何在c#中使用SDK LEADTOOLS OCR技术Windows控制台应用程序
完成时间 30分钟
Visual Studio项目 下载教程项目(3 KB)
平台 c# Windows控制台应用程序
IDE Visual Studio 2017中,2019年
开发许可 下载LEADTOOLS
试试用另一种语言

所需的知识

熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前加载和保存OCR区- c#控制台教程。

创建项目并添加LEADTOOLS引用

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

的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:

如果使用NuGet引用,本教程需要以下NuGet包:

如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64:

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

设置许可文件

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

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

请注意

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

添加加载和保存OCR区域代码

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

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

c#
使用系统;使用先;使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Ocr;

添加一个新方法LoadandSaveOcrZones ()然后在调用它主要方法后SetLicense ()方法调用。添加以下代码来初始化IOcrEngine,创建IOcrPage从文件加载OCR区,添加一个新的OcrZone,将区域保存到一个新的XML文件。

c#
静态无效LoadandSaveOcrZones (){使用(RasterCodecs编解码器=RasterCodecs ())使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)){ocrEngine.Startup(编解码器,,,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);字符串zonesFile =@“OCR区XML”之路;字符串imageFile =@“样本图像创建OCR页面”;字符串zonesOutFile =@“路径保存OCR区”;/ /加载TIFF图像文件= ocrEngine.RasterCodecsInstance RasterImage形象。负载(imageFile, 1);使用(IOcrPage ocrPage = ocrEngine。CreatePage(图片,OcrImageSharingMode.None)){Console.WriteLine ($”{ocrPage.Zones。数}IOcrPage创建后区。\ n”);ocrPage.LoadZones (zonesFile);Console.WriteLine ($”{ocrPage.Zones。数}区从文件加载区后。\ n”);foreach(OcrZone OcrZoneocrPage.Zones){int指数= ocrPage.Zones.IndexOf (ocrZone);Console.WriteLine (“带指数:{0}”、指数);Console.WriteLine (“Id”{0},ocrZone.Id);Console.WriteLine (“边界{0}”,ocrZone.Bounds);Console.WriteLine (“ZoneType {0}”,ocrZone.ZoneType);Console.WriteLine (“CharacterFilters: {0}”,ocrZone.CharacterFilters);Console.WriteLine (“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -”);}/ /添加一个额外的区域,这是我们的用户定义的一个OcrZone区=OcrZone ();区。Name =“自定义区”;区。ZoneType = OcrZoneType.Text;区。边界=LeadRect (10 10 ocrPage。宽度- 20,100);ocrPage.Zones.Add(区);Console.WriteLine ($”{ocrPage.Zones。数}区后手动添加区。\ n”);ocrPage.SaveZones (zonesOutFile);Console.WriteLine ($“区域成功保存到{zonesOutFile}”);Console.WriteLine (“按任意键退出……”);Console.ReadKey (真正的);}}}

处理流

处理文件使用MemoryStream,取代现有的代码LoadandSaveOcrZones ()用以下方法:

c#
静态无效LoadandSaveOcrZones (){使用(RasterCodecs编解码器=RasterCodecs ())使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)){ocrEngine.Startup(编解码器,,,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);字符串zonesFile =@“OCR区XML”之路;字符串imageFile =@“样本图像创建OCR页面”;字符串zonesOutFile =@“路径保存OCR区”;字节[]data1 = File.ReadAllBytes (zonesFile);字节[]data2 = File.ReadAllBytes (imageFile);字节[]data3 = File.ReadAllBytes (zonesOutFile);使用(MemoryStream ms1 =MemoryStream (data1))使用(MemoryStream一=MemoryStream (data2))使用(MemoryStream ms3 =MemoryStream (data3)){/ /加载TIFF图像文件= ocrEngine.RasterCodecsInstance RasterImage形象。负载(imageFile, 1);使用(IOcrPage ocrPage = ocrEngine。CreatePage(图片,OcrImageSharingMode.None)){Console.WriteLine ($”{ocrPage.Zones。数}IOcrPage创建后区。\ n”);ocrPage.LoadZones (zonesFile);Console.WriteLine ($”{ocrPage.Zones。数}区从文件加载区后。\ n”);foreach(OcrZone OcrZoneocrPage.Zones){int指数= ocrPage.Zones.IndexOf (ocrZone);Console.WriteLine (“带指数:{0}”、指数);Console.WriteLine (“Id”{0},ocrZone.Id);Console.WriteLine (“边界{0}”,ocrZone.Bounds);Console.WriteLine (“ZoneType {0}”,ocrZone.ZoneType);Console.WriteLine (“CharacterFilters: {0}”,ocrZone.CharacterFilters);Console.WriteLine (“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -”);}/ /添加一个额外的区域,这是我们的用户定义的一个OcrZone区=OcrZone ();区。Name =“自定义区”;区。ZoneType = OcrZoneType.Text;区。边界=LeadRect (10 10 ocrPage。宽度- 20,100);ocrPage.Zones.Add(区);Console.WriteLine ($”{ocrPage.Zones。数}区后手动添加区。\ n”);ocrPage.SaveZones (zonesOutFile);Console.WriteLine ($“区域是否成功保存到{zonesOutFile}”);}}}}

运行该项目

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

如果是正确的步骤,应用程序运行和创建一个IOcrPage从指定的文件,加载OCR区,添加一个新的OcrZoneIOcrPage在XML,然后出口区域指定的文件路径。

总结

本教程展示了如何加载和保存OCR区。还介绍了如何使用IOcrEngineIOcrPage接口,以及OcrZone结构。

另请参阅

net
iOS