医疗影像工具LEADTOOLS 入门教程: 将 OCR 结果导出到 JSON – C# .NET 6

本教程介绍如何在使用 LEADTOOLS SDK 的 C# .NET 6 应用程序中对图像进行 OCR 并将 OCR 结果导出到 JSON 文件。

本教程介绍如何在使用 LEADTOOLS SDK 的 C# .NET 6 应用程序中对图像进行 OCR 并将 OCR 结果导出到 JSON 文件。

概括 本教程介绍如何在 C# .NET 6 控制台应用程序中将 OCR 结果保存到 JSON 文件。
完成时间 30分钟
视觉工作室项目 下载教程项目 (1 KB)
平台 C# .NET 6 控制台应用程序
集成开发环境 视觉工作室 2022
运行时目标 .NET 6 或更高版本
开发许可 LEADTOOLS
用另一种语言试试
  • C# :.NET Framework(控制台)、. NET 6+(控制台)
  • 爪哇

所需知识

在学习将 OCR 结果导出到 JSON – C# .NET 6教程之前,通过查看添加引用和设置许可证教程熟悉创建项目的基本步骤。

创建项目并添加 LEADTOOLS 引用

从以下两个主题之一创建的项目副本开始,具体取决于平台:

  • 添加引用并为 .NET Framework 设置许可证。
  • 添加引用并为 .NET 6 或更高版本设置许可证

如果您没有该项目,请按照相关教程中的步骤创建它。

所需的参考取决于项目的目的。可以通过 NuGet 包添加引用。

本教程需要以下 NuGet 包:

  • Leadtools.Document.Sdk
  • Newtonsoft.Json

有关您的应用程序需要哪些 DLL 文件的完整列表,请参阅要包含在您的应用程序中的文件。

设置许可证文件

许可证解锁项目所需的功能。它必须在调用任何工具包函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时许可证。

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

评估许可证,在下载评估工具包时获得。它允许评估工具包。

部署许可证。如果需要部署许可证文件和开发人员密钥,请参阅获取许可证。

笔记

添加 LEADTOOLS NuGet 引用和设置许可证在添加引用和设置许可证教程 中有更详细的介绍。

初始化 OcrEngine

创建项目、添加参考和设置许可证后,就可以开始编码了。

在解决方案资源管理器中,打开Program.cs。将以下语句添加到using顶部的块中Program.cs。

[C#]

using System;using System.IO;using System.Collections.Generic;using Newtonsoft.Json;using Leadtools;using Leadtools.Ocr;using Leadtools.Document;

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

[C#]

string file = @"C:LEADTOOLS22ResourcesImagesleadtools.pdf";IOcrEngine ocrEngine = InitOcrEngine();OCRandSaveResults(ocrEngine, file);

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

[C#]

static IOcrEngine InitOcrEngine(){// Initialize OCR engineIOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD);ocrEngine.Startup(null, null, null, @"C:LEADTOOLS22BinCommonOcrLEADRuntime");return ocrEngine;}
添加文本识别并导出为 JSON 代码

在名为 Program 的类中创建一个新方法,并在代码行之后的方法中OCRandSaveResults(IOcrEngine ocrEngine, string file)调用它。将下面的代码添加到对PDF文档进行OCR识别并将识别结果导出到JSON文件的方法中。Main()IOcrEngine ocrEngine = InitOcrEngine();OCRandSaveResults()

static void OCRandSaveResults(IOcrEngine ocrEngine, string file){using (var document = DocumentFactory.LoadFromFile(file, new LoadDocumentOptions { FirstPageNumber = 1, LastPageNumber = -1 })){document.Text.OcrEngine = ocrEngine;List<DocumentPageText> documentPageTexts = new List<DocumentPageText>();foreach (var page in document.Pages){//parse the text and build the DocumentPageText objectvar pageText = page.GetText();pageText.BuildText();pageText.BuildWords();documentPageTexts.Add(pageText);}//Save the recognized words to JSONvar json = JsonConvert.SerializeObject(documentPageTexts, Formatting.Indented);var jsonPath = Path.ChangeExtension(file, ".json");File.WriteAllText(jsonPath, json);}}
处理流

或者,您可以使用内存流来处理文档。为此,将以下代码添加到程序中并在方法中调用此Main(string[] args)方法:

static void OCRStreamandSaveResults(IOcrEngine ocrEngine){ // load the specified documentvar fileName = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf");using (var stream = File.OpenRead(fileName)){var options = new LoadDocumentOptions();using (var document = DocumentFactory.LoadFromStream(stream, options)){document.Text.OcrEngine = ocrEngine;Console.WriteLine("Doc loaded");List<DocumentPageText> documentPageTexts = new List<DocumentPageText>();foreach (var page in document.Pages){//parse the text and build the DocumentPageText objectvar pageText = page.GetText();pageText.BuildText();pageText.BuildWords();documentPageTexts.Add(pageText);}//Save the recognized words to JSONvar json = JsonConvert.SerializeObject(documentPageTexts, Formatting.Indented);var jsonPath = Path.ChangeExtension(fileName, ".json");File.WriteAllText(jsonPath, json);}}}

一定要添加LEAD_VARS类,以便ImagesDir可以访问。

static class LEAD_VARS{public const string ImagesDir = @"C:LEADTOOLS22ResourcesImages";}
运行项目

按F5或选择Debug -> Start Debugging运行项目。

如果步骤正确,应用程序将对文档进行 OCR,并创建包含识别结果的 JSON。出于本教程的目的,我们使用位于此处的 PDF 文件:<INSTALL_DIR>LEADTOOLS22ResourcesImagesleadtools.pdf

在此处下载生成的 JSON 。

以上便是将 OCR 结果导出到 JSON – C# .NET 6,如果您还有其他疑问,欢迎咨询我们或者加入我们官方技术交流群。


欢迎下载|体验更多LEADTOOL产品

您还可以加入产品:


标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2023年1月1日
下一篇 2023年1月1日

相关推荐

发表回复

登录后才能评论