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

LEADTOOLS 是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理,PDF,打印捕获,归档,注释和显示功能。利用业界领先的图像处理技术,能够智能识别文件,可以用来识别任何类型的扫描或传真形式的图像。

LEADTOOLS 最新下载(qun:731259648)icon-default.png?t=N0U7https://www.evget.com/product/782/download

本教程介绍如何在使用 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:\LEADTOOLS22\Resources\Images\leadtools.pdf"; IOcrEngine ocrEngine = InitOcrEngine(); OCRandSaveResults(ocrEngine, file);

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

[C#]

static IOcrEngine InitOcrEngine() { // Initialize OCR engine IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD); ocrEngine.Startup(null, null, null, @"C:\LEADTOOLS22\Bin\Common\OcrLEADRuntime"); 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 object var pageText = page.GetText(); pageText.BuildText(); pageText.BuildWords(); documentPageTexts.Add(pageText); } //Save the recognized words to JSON var 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 document var 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 object var pageText = page.GetText(); pageText.BuildText(); pageText.BuildWords(); documentPageTexts.Add(pageText); } //Save the recognized words to JSON var 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:\LEADTOOLS22\Resources\Images"; }

运行项目

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

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

在此处下载生成的 JSON 。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值