在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
光学字符识别 (光学字符识别) 提供了将图像文件转换为机器编码文本的功能。鉴于扫描文件保存为图像文件,而这些图像文件中的数据无法使用普通文本编辑器甚至文字处理应用程序进行搜索、编辑或保存为文本格式,因此这种功能非常有用。OCR 处理有助于将这些图像转换为机器可读文本,供用户进一步处理。
在当今时代,通过互联网共享的文档通常都是数字格式,大多以 PDF 或图像的形式存在。有许多在线资源可以将图像转换为文本。但是,大多数企业的软件应用程序都需要这一功能。考虑到这一点,有许多库提供 OCR 处理技术,可嵌入到软件应用程序中。
在本文中,我们将讨论两个最流行的 C# OCR 库。它们是
IronOCR .NET OCR for .NET是一个C#库,能让用户扫描、搜索和读取图像和PDF文件。它将图像或 PDF 文件作为输入,并使用最新的 Tesseract 5 定制.NET OCR 引擎输出文本、结构化数据或可搜索的 PDF 文档。Tesseract 支持 125 多种语言,IronOCR 支持从 2.0 到 7.0 的 .NET Core、标准和跨平台。
IronOCR 是一个用户友好型 API,允许 C# 开发人员使用 "IronTesseract "类自动将图像转换为文本。该库将速度、准确性和易用性放在首位。
IronOCR 的另一个强大功能是可以扫描所有图像文件中的条形码和 QR 码,并读取其文本。IronOCR 的其他重要功能如下。
现在,让我们来看看 Nanonets OCR API。
Nanonets OCR API 是一个 REST API,可根据您的业务需求为自动化工作流程提供实时数据提取。OCR API 由人工智能驱动,可在数秒内从非结构化文档中安全地捕获、分类和提取数据。有了 Nanonets,您可以实现手动数据录入自动化,从而减少所需的人工操作。
Nanonets 利用机器学习理解文档,即使是那些不遵循标准模板的文档。你可以上传任何非结构化文档,并根据不同字段只捕捉所需的信息。与传统的 OCR 不同,Nanonets OCR 模型可以通过训练获得更好的结果。随着业务的发展,Nanonets 智能文档处理 OCR 模型也会随着每一份新文档的出现而成长和学习,从而提供快速准确的结果。
此外,Nanonets 还提供了一个 Python 软件包,可在 Python 应用程序中轻松集成和捕获数据,而无需请求 API。其他功能包括
符合 GDPR
文章其余部分如下:
1.创建 Visual Studio 项目
2.安装 IronOCR
3.安装 Nanonets OCR API
4.图像到文本
5.条形码和 QR 文本转换
6.PDF 转文本
7.许可证发放
8.结论
在本教程中,我们将使用最新版本的 Visual Studio 2022。如果您尚未下载和安装,可以从 Visual Studio 网站.
现在,我们需要创建一个控制台项目,以便开始使用这两个库。请按照以下步骤创建项目:
点击创建新项目。
从给定选项中选择 C# 控制台应用程序。
单击下一步。
在附加信息下,选择 .NET 6.0 Framework,因为它是最稳定的版本。
接下来,我们将在项目中安装库进行比较。
安装 IronOCR 库有多种方法。让我们逐一了解一下。
NuGet 是一个包管理器,用于在项目中下载和安装依赖项。它的软件包包含编译后的代码和 (DLL) 和清单文件。使用以下方法访问:
扩展 NuGet 包管理器选项。
单击 "管理解决方案的 NuGet 包"。
或者
单击 "管理 NuGet 包"。
现在,NuGet 包管理器窗口将打开。浏览 IronOCR 并点击安装。
IronOCR 也可以直接从 NuGet 官方网站下载。请按照以下步骤操作:
1.点击链接:"".
2.点击页面右侧的 "下载软件包 "选项。
3.打开下载的软件包,即可开始安装。
4.最后,重新加载解决方案就大功告成了。
只需访问 Iron Software 网站并导航至 IronOCR for .NET 网页。滚动到底部,点击下载 DLL 或下载 Windows 安装程序。
将下载一个压缩文件。解压项目文件或运行 Windows 安装程序。按照以下步骤将其添加到项目中。
1.在 Visual Studio 的解决方案资源管理器中右键单击项目的依赖项。
2.然后,选择 "添加项目引用 "选项。
3.浏览下载的 DLL 文件位置。
4.最后,单击 "确定 "添加项目引用。
1.导航至 Visual Studio 中的 "工具 "选项卡。
2.扩展 NuGet 包管理器选项。
3.选择软件包管理器控制台并键入以下命令:
Install-Package IronOcr
这将自动下载 IronOCR 并将其安装到项目中。
现在,我们可以在项目中使用 IronOCR 了。
我们只需要在需要访问 IronOCR 函数的源代码文件顶部添加一个命名空间。
using IronOcr;
using IronOcr;
Imports IronOcr
现在,让我们安装 Nanonets OCR API。
以下是更正后的段落:
Nanonets 可以多种方式获取数据。它提供在线 OCR 功能,可用于即时提取数据,缩短周转时间。作为一个 REST API,它可以集成到多种编程语言中。在此,我们将演示如何将其集成到 C# 编程语言中。
要在 C# 中使用 Nanonets OCR API 自动进行数据采集,您需要具备以下条件:
1.注册 Nanonets - 您可以使用 Gmail 帐户或在 Nanonets 注册的电子邮件注册免费试用。
2.创建 OCR 模型 - 这将生成一个模型 ID,以后调用 API 时会用到。
3.获取免费 API 密钥 - 移动到 "账户信息 "选项卡,点击 API 密钥。在这里,您可以添加新密钥或使用现有密钥。
RestSharp 是用于 .NET 的简单 Rest 和 HTTP 客户端库。它用于发送和接收 API 请求并处理响应。执行 Nanonets API 代码需要该库,因为它也是一个 REST API。
要安装 RestSharp,请打开解决方案的 NuGet 包管理器,浏览 RestSharp 并安装。或者,你也可以打开软件包管理器控制台并键入以下命令:
PM> Install-Package RestSharp
现在,一切准备就绪,随时可以使用。
从图像中读取数据是一项相当繁琐的工作。图像的分辨率和质量在提取内容时起着重要作用。IronOCR 和 Nanonets 都提供光学字符识别功能,可从图像中提取文本。
IronOCR 可让开发人员轻松实现以下功能 读取图像文件的内容 及其强大的 "IronTessaract "类。我们将使用以下代码从 PNG 图像文件中读取文本:
var Ocr = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
Input.AddImage("test-files/employmentapp.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
IronOCR 的输出结果与提供给它的原始图像一致。代码简洁易懂,没有任何技术含量。
Nanonets 还提供从图像中提取文本的功能。为此,需要使用认证密钥进行 API 调用,然后将图像上传到 Nanonets 服务器。然后,快速 OCR 工具会将提取的文本作为响应返回给应用程序。以下是代码示例:
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/FullText");
client.Timeout = -1;
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddFile("file", "FILE_PATH");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/FullText");
client.Timeout = -1;
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddFile("file", "FILE_PATH");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Dim client = New RestClient("https://app.nanonets.com/api/v2/OCR/FullText")
client.Timeout = -1
Dim request = New RestRequest(Method.Post.ToString())
request.AddHeader("Authorization", "Basic " & Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")))
request.AddFile("file", "FILE_PATH")
Dim response As RestResponse = client.Execute(request)
Console.WriteLine(response.Content)
输出结果并不完美。图像包含结构化数据,只有部分数据被正确获取。如果使用另一张简单的文本图像,输出结果则很好。请注意,可以对模型进行训练,以获得更准确的结果。
IronOCR 为读取图像提供了一个有用的功能,其中包括检测和读取条形码和二维码的功能。要启用此功能,请在处理图像前将 "ReadBarcodes "配置属性设置为 true。OCR 处理完成后,遍历 OCR 结果以提取每个检测到的条形码的值。下面是使用 IronOCR 读取条形码的示例代码段:
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()) {
input.AddImage("test-files/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()) {
input.AddImage("test-files/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
Dim Ocr = New IronTesseract()
Ocr.Configuration.ReadBarCodes = True
Using input = New OcrInput()
input.AddImage("test-files/Barcode.png")
Dim Result = Ocr.Read(input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
输入图像中的三个条形码都被成功读取,并显示出隐藏的文本。
Nanonets OCR API 提供检测 QR 码的功能。不过,该功能仅在企业计划中提供,您需要联系销售人员才能使用。此外,Nanonets 还允许你检测文档或收据的特定部分。它还提供应付账款、发票处理和会计自动化等其他功能。
使用 IronOCR 阅读 PDF 文件与阅读图像文件一样简单。唯一需要改动的是在读取图像的代码中使用 AddPDF
方法而不是 AddImage
方法。代码如下
var Ocr = new IronTesseract();
using (var Input = new OcrInput()) {
Input.AddPdf("test-files/example.pdf");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput()) {
Input.AddPdf("test-files/example.pdf");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
Input.AddPdf("test-files/example.pdf")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
提取的文本与 PDF 文件格式相同。
从 PDF 文件读取数据也可通过 Nanonets OCR API 实现。除了请求中使用的 URL 外,代码与图像文本检测代码几乎完全相同。让我们来看看代码:
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false");
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("accept", "Multipart/form-data");
request.AddFile("file", "test-files/example.pdf");
RestResponse response = client.Execute(request);
Console
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false");
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("accept", "Multipart/form-data");
request.AddFile("file", "test-files/example.pdf");
RestResponse response = client.Execute(request);
Console
Dim client = New RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false")
Dim request = New RestRequest(Method.Post.ToString())
request.AddHeader("authorization", "Basic " & Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")))
request.AddHeader("accept", "Multipart/form-data")
request.AddFile("file", "test-files/example.pdf")
Dim response As RestResponse = client.Execute(request)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Console
在上述代码中,请将 model_id 替换为您的 OCR 模型 ID。同时,将 API 密钥替换为您自己的 API 密钥。然后,将 PDF 文件路径替换为您自己的文件路径。
其输出结果与 IronOCR 相似,但 Nanonets OCR 的输出结果会包含额外的空格和新行。
IronOCR 用于开发目的是免费的,但用于商业用途则需要获得许可。它还提供免费试用版,以测试其满足您需求的所有潜力。简装版起价为 $749,并提供 30 天退款保证。IronOCR 免费提供一年的产品支持和更新,之后每年 399 美元。所有许可证都是永久性的,这意味着只需一次性购买,没有任何隐藏费用。您还可以为 SaaS 和 OEM 产品选择免版税的再分发服务,一次性购买只需 1999 美元。有关许可证套餐和定价计划的更多信息,请访问以下网站 链接.
Nanonets OCR API 提供三种不同的套餐。您可以免费注册其入门套餐。前 500 页免费,之后每页收费 0.3 美元。您只需为您使用的内容付费。有关定价的更多详细信息,请访问此处 链接.
IronOCR 为 C# 开发人员提供了可在大多数平台上使用的高级 Tesseract API。它可以部署在 Windows、Linux、Mac、Azure、AWS 和 Lambda 上,支持 .NET Framework 项目以及 .NET Standard 和 .NET Core。IronOCR 还能读取 OCR 扫描中的条形码,甚至能将 OCR 导出为 HTML 和可搜索的 PDF。有关 C# Tesseract OCR 的更多信息,请点击 这里.
Nanonets OCR API 提供各种 OCR 工具。它为发票、收据、账单、表格和身份证等多种文档类型提供即用型 OCR 解决方案,实现数据采集自动化。使用 Nanonets OCR API 无需模板设置,没有任何隐藏费用,可节省 90% 的时间,提高 10 倍的工作效率。
IronOCR 的许可证是基于开发人员的,这意味着您应始终根据使用该产品的开发人员数量来购买许可证。Nanonets 的定价计划基于提取信息和分析数据的图像或 PDF 页数。与 IronOCR 许可相比,专业版和企业版计划是按月计算每个模型的价格,当模型和页面数量增加时,价格也随之增加。此外,IronOCR 许可证是一次性购买,可终身使用,支持 OEM 和 SaaS 分发。
总体比较来看,这两种应用程序接口都能提供基于人工智能和 ML 的 OCR 功能。IronOCR 比 Nanonets 略胜一筹,因为它可以离线使用,即使是非结构化文档也能提供更可靠的结果。IronOCR 提供了使用自定义训练数据的功能,可快速集成以获得更准确的结果。Nanonets OCR 可根据关键字段训练模型,如果训练不当,可能难以检测。此外,IronOCR 还提供多语言支持,支持多达 127 种以上的国际语言。
现在,作为完整的 Iron 套件的一部分,您可以用两个产品的价格获得五个 Iron 产品。请访问 链接 探索更多。