本教程展示如何多线程并行处理的OCR引擎c#控制台应用程序窗口使用LEADTOOLS SDK。
| 概述 | |
|---|---|
| 总结 | 本教程介绍了如何多线程OCR引擎使用IOcrAutoRecognizeManager在c# 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.dllLeadtools.Codecs.dllLeadtools.Document.Writer.dllLeadtools.Ocr.dllLeadtools.Ocr.LEADEngine.dll对于一个完整的列表的应用程序所需的DLL文件,请参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。细节包括教程不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
如何正确添加LEADTOOLS NuGet和本地引用的吗添加引用和设置一个许可证教程。
与项目创建、添加引用,许可,可以开始编码。
在解决方案资源管理器,打开Program.cs。添加以下语句的使用块的顶部Program.cs:
/ /使用块使用系统;使用先;使用Leadtools;使用Leadtools.Ocr;使用Leadtools.Document.Writer;使用System.Diagnostics;使用System.Threading.Tasks;
的IOcrAutoRecognizeManager接口支持使用多个线程在处理工作。线程的数量可以控制使用MaximumThreadsPerJob财产。
也可以在自己的线程中执行每个作业,在下面的代码中使用Parallel.ForEach。
添加一个新方法程序类,命名OCR ()。调用内部的新方法Main ()方法,在调用SetLicense。将下面的代码添加到OCR ()测试方法的四种不同的组合顺序和并行处理。
静态无效OCR (){使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)){字符串inputDirectory =@“文件路径输入目录”;字符串outputDirectory =@“输出目录文件路径”;秒表秒表=新秒表();ocrEngine.Startup (零,零,零,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);Console.WriteLine (“OCR引擎开始”);Console.WriteLine ();IOcrAutoRecognizeManager经理= ocrEngine.AutoRecognizeManager;var文件= Directory.EnumerateFiles (inputDirectory,“* .tif”);经理。MaximumThreadsPerJob = 1;/ / 1线/工作Console.WriteLine (“按顺序处理一切……”);stopwatch.Reset ();stopwatch.Start ();Console.Write ($“文件处理”);foreach(var文件在文件){Guid id = Guid.NewGuid ();/ /创建新的文件名经理。运行(文件,outputDirectory + id.ToString () +. pdf”DocumentFormat.Pdf,零,零);Console.Write ($“{Path.GetFileName(文件)}. .”);}stopwatch.Stop ();Console.WriteLine (“处理”。);Console.WriteLine ($“总时间:{秒表。ElapsedMilliseconds}女士(顺序)”);Console.WriteLine ();/ /设置为使用最大CPU /当前机器的核心。经理。MaximumThreadsPerJob = 0;Console.WriteLine (“并行处理页,目录顺序……”);stopwatch.Reset ();stopwatch.Start ();Console.Write ($“文件处理”);foreach(var文件在文件){Guid id = Guid.NewGuid ();/ /创建新的文件名经理。运行(文件,outputDirectory + id.ToString () +. pdf”DocumentFormat.Pdf,零,零);Console.Write ($“{Path.GetFileName(文件)}. .”);}stopwatch.Stop ();Console.WriteLine (“处理”。);Console.WriteLine ($“总时间:{秒表。并行ElapsedMilliseconds}女士(页面、目录顺序)”);Console.WriteLine ();Console.WriteLine (“并行处理一切……”);stopwatch.Reset ();stopwatch.Start ();Console.Write ($“文件处理”);Parallel.ForEach(文件s, (file) =>{Guid id = Guid.NewGuid ();/ /创建新的文件名经理。运行(文件,outputDirectory + id.ToString () +. pdf”DocumentFormat.Pdf,零,零);Console.Write ($“{Path.GetFileName(文件)}. .”);});stopwatch.Stop ();Console.WriteLine (“处理”。);Console.WriteLine ($“总时间:{秒表。ElapsedMilliseconds}女士(并行)的一切”);Console.WriteLine ();经理。MaximumThreadsPerJob = 1;/ / 1线/工作Console.WriteLine (“处理页面顺序和并行的目录……”);stopwatch.Reset ();stopwatch.Start ();Console.Write ($“文件处理”);Parallel.ForEach(文件s, (file) =>{Guid id = Guid.NewGuid ();/ /创建新的文件名经理。运行(文件,outputDirectory + id.ToString () +. pdf”DocumentFormat.Pdf,零,零);Console.Write ($“{Path.GetFileName(文件)}. .”);});stopwatch.Stop ();Console.WriteLine (“处理”。);Console.WriteLine ($“总时间:{秒表。ElapsedMilliseconds}女士(页面顺序、并行目录)”);Console.WriteLine ();Console.WriteLine (“按任意键……”);Console.ReadKey ();}}
请注意
一定要设置适当的文件夹的名称
inputDirectory和outputDirectory变量。输入目录必须包含TIFF文件(* .tif)本教程中创建的应用程序要处理的。
按运行项目F5,或通过选择调试- >开始调试。
如果步骤正确,控制台出现和应用程序将TIFF图像转换为PDF格式并保存到指定位置。这是四次重复使用不同的组合顺序和并行处理。
本教程展示了如何创建一个基于控制台的OCR应用程序使用铅OCR引擎比较性能时使用不同的顺序和并行处理技术。