本教程展示了如何创建一个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#控制台教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果你没有这个项目,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Ocr
如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64
:
Leadtools.dll
Leadtools.Codecs.dll
Leadtools.Codecs.Cmp.dll
Leadtools.Document.Writer.dll
Leadtools.Ocr.dll
Leadtools.Ocr.LEADEngine.dll
对于一个完整的列表的应用程序所需的DLL文件,请参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。细节包括教程不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS NuGet和本地引用设置许可中会详细介绍添加引用和设置一个许可证教程。
与项目创建、添加引用,许可,可以开始编码。
在解决方案资源管理器,打开Program.cs
并添加以下语句使用
块顶部:
使用系统;
使用先;
使用Leadtools;
使用Leadtools.Codecs;
使用Leadtools.Ocr;
添加一个新方法LoadandSaveOcrZones ()
然后在调用它主要
方法后SetLicense ()
方法调用。添加以下代码来初始化IOcrEngine
,创建IOcrPage
从文件加载OCR区,添加一个新的OcrZone
,将区域保存到一个新的XML文件。
静态无效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 OcrZone在ocrPage.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 ()
用以下方法:
静态无效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 OcrZone在ocrPage.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区,添加一个新的OcrZone
到IOcrPage
在XML,然后出口区域指定的文件路径。
本教程展示了如何加载和保存OCR区。还介绍了如何使用IOcrEngine
和IOcrPage
接口,以及OcrZone
结构。