光学字符识别结果导出到JSON - c#控制台

本教程演示如何OCR图像和结果导出到一个JSON文件c# Windows控制台应用程序使用LEADTOOLS SDK。

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

所需的知识

熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前光学字符识别结果导出到JSON - c#控制台教程。

创建项目并添加LEADTOOLS引用

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

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

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

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

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

设置许可文件

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

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

请注意

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

初始化OcrEngine

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

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

c#
使用系统;使用先;使用System.Collections.Generic;使用Newtonsoft.Json;使用Leadtools;使用Leadtools.Ocr;使用Leadtools.Document;

添加一个新方法InitOcrEngine ()返回IOcrEngine然后在调用它Main ()方法后SetLicense ()方法调用,如下所示。

c#
静态无效主要(字符串[]参数){字符串文件=@“C: \ LEADTOOLS22 \资源\ \ leadtools.pdf图像”;SetLicense ();IOcrEngine ocrEngine = InitOcrEngine ();OCRandSaveResults (ocrEngine、文件);}

将以下代码添加到InitOcrEngine ()初始化方法IOcrEngine

c#
静态IOcrEngine InitOcrEngine (){/ /初始化OCR引擎IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD);ocrEngine.Startup (,,,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);返回ocrEngine;}

添加文本识别和出口到JSON代码

创建一个新的方法在程序中类命名OCRandSaveResults (IOcrEngine ocrEngine字符串文件)并调用它Main ()方法后IOcrEngine ocrEngine = InitOcrEngine ();行代码。将下面的代码添加到OCRandSaveResults ()OCR PDF文档的方法,识别结果导出到一个JSON文件。

c#
静态无效OCRandSaveResults (IOcrEngine ocrEngine,字符串文件){使用(var文档= DocumentFactory.LoadFromFile(文件,LoadDocumentOptions {FirstPageNumber = 1, LastPageNumber = 1})){document.Text。OcrEngine = OcrEngine;列出< DocumentPageText > documentPageTexts =列表< DocumentPageText > ();foreach(var页面document.Pages){/ /解析文本和构建DocumentPageText对象varpageText = page.GetText ();pageText.BuildText ();pageText.BuildWords ();documentPageTexts.Add (pageText);}/ /序列化JSON字符串的识别字varjson = JsonConvert。SerializeObject (documentPageTexts Formatting.Indented);/ /保存的JSON文件varjsonPath = Path.ChangeExtension(文件,. json”);文件。WriteAllText (jsonPath、json);}}

处理流

处理文件使用MemoryStream,修改OCRandSaveResults ()方法变成如下:

c#
静态无效OCRandSaveResults (IOcrEngine ocrEngine,字符串文件){字节[]data = File.ReadAllBytes(文件);使用(MemoryStream ms =MemoryStream(数据)使用(var文档= DocumentFactory.LoadFromStream(女士,LoadDocumentOptions {FirstPageNumber = 1, LastPageNumber = 1})){document.Text。OcrEngine = OcrEngine;列出< DocumentPageText > documentPageTexts =列表< DocumentPageText > ();foreach(var页面document.Pages){/ /解析文本和构建DocumentPageText对象varpageText = page.GetText ();pageText.BuildText ();pageText.BuildWords ();documentPageTexts.Add (pageText);}/ /序列化JSON字符串的识别字varjson = JsonConvert。SerializeObject (documentPageTexts Formatting.Indented);/ /保存的JSON文件字节[]jsonData = System.Text.Encoding.Default.GetBytes (json);MemoryStream outputStream =MemoryStream (jsonData);}}

运行该项目

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

如果步骤正确之后,应用程序将OCR文档包含识别结果,并创建一个JSON。对于本教程中,我们使用了PDF文件位于:< INSTALL_DIR > \ LEADTOOLS22 \ \ \ leadtools.pdf图像资源

你可以下载生成的JSON在这里

总结

本教程展示了如何在一个文档上运行OCR和导出结果JSON。同时,它介绍了如何使用IOcrEngine接口,以及LEADDocument,DocumentPageDocumentPageText类。

另请参阅

iOS
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2023领先的技术公司。保留所有权利。