在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
光学字符识别(光学字符识别)该工具提供了将图像文件转换为机器编码文本的功能。 由于扫描文件保存为图像文件,而这些图像文件中的数据无法使用普通文本编辑器或甚至文字处理应用程序进行搜索、编辑或保存为文本格式,因此翻译工作非常有用。 OCR 处理有助于将这些图像转换为机器可读文本,供用户进一步处理。
在现代社会,通过互联网共享的文档通常都是数字格式,多为 PDF 或图片形式。 有许多在线资源可以将图像转换为文本。 然而,大多数企业的软件应用程序都需要这种功能。 考虑到这一点,有许多提供 OCR 处理技术的库可以嵌入到软件应用程序中。
在本文中,我们将讨论两个最流行的 C# OCR 库。 它们是
IronOCRfor .NET 是一个 C# 库,可让用户扫描、搜索和阅读图像和 PDF。 它将图像或 PDF 文件作为输入,并使用最新的 Tesseract 5 定制 .NET OCR 引擎输出文本、结构化数据或可搜索的 PDF 文档。 Tesseract 有 125 多种语言版本,IronOCR 提供从 2.0 到 7 的 .NET Core、Standard 跨平台支持。
IronOCR 是一个用户友好型 API,允许 C# 开发人员使用 "IronTesseract "类自动将图像转换为文本。 该库优先考虑速度、准确性和易用性。
IronOCR 的另一个强大功能是能够扫描所有图像文件中的条形码和 QR 码,并读取其文本。 IronOCR 的其他重要功能如下。
简单的数据输出: 以 .NET 文本字符串、Barcode、QR 和图像格式输出。
现在,让我们来看看 Nanonets OCR API。
Nanonets OCR API是一个 REST API,可根据您的业务需求为自动化工作流提供实时数据提取。 OCR API 由人工智能驱动,可在数秒内从非结构化文档中安全地捕获、分类和提取数据。 有了 Nanonets,您可以实现手动数据录入自动化,从而减少所需的人工工作量。
Nanonets 利用机器学习理解文档,即使是那些不遵循标准模板的文档。 您可以上传任何非结构化文档,并根据不同字段只捕捉所需的信息。 与传统 OCR 不同,Nanonets OCR 模型可以通过训练获得更好的效果。 随着您业务的增长,Nanonets 智能文档处理 OCR 模型也会随着每一份新文档而增长和学习,从而提供快速准确的结果。
此外,Nanonets 还提供了一个 Python 软件包,可在 Python 应用程序中轻松集成和捕获数据,而无需请求 API。 其他特点包括
遵守 GDPR
提供多种输出选项
文章的其余部分如下:
创建 Visual Studio 项目
安装 IronOCR
安装 Nanonets OCR API
图像到文本
将 BarCode 和 QR 转换为文本
将 PDF 转换为文本
许可
在本教程中,我们将使用最新版本的 Visual Studio 2022。如果您还没有下载和安装,可以从Visual Studio 网站.
现在,我们需要创建一个控制台项目,以便开始使用这两个库。 请按照以下步骤创建项目:
单击创建新项目。
从给定选项中选择 C# 控制台应用程序。
单击下一步。
在附加信息下,选择 .NET 6.0 Framework,因为它是最稳定的版本。
现在,单击 "创建",项目将在您指定的位置创建。
接下来,我们将在项目中安装这些库进行对比。
安装 IronOCR 库有多种方法。 让我们一个一个地来看。
NuGet 是在项目中下载和安装依赖项的软件包管理器。 其软件包包含编译代码和(DLL)和清单文件。使用以下方法访问:
单击管理解决方案的 NuGet 软件包。
或者
单击管理 NuGet 软件包。
现在,NuGet 包管理器窗口将打开。 浏览 IronOCR 并点击安装。
IronOCR 也可以直接从 NuGet 官方网站下载。请按照以下步骤操作:
点击链接:"".
点击页面右侧的 "下载软件包 "选项。
打开下载的软件包,即可开始安装。
只需访问 Iron Software 网站并导航至 IronOCR for .NET 网页即可。 滚动到底部并单击下载 DLL 或下载 Windows 安装程序。
将下载一个压缩文件。 解压缩项目文件或运行 Windows 安装程序。 请按照以下步骤将其添加到您的项目中。
在 Visual Studio 的解决方案资源管理器中右键单击项目的依赖项。
然后,选择 "添加项目参考 "选项。
浏览下载的 DLL 文件位置。
导航至 Visual Studio 中的 "工具 "选项卡。
扩展 NuGet 包管理器选项。
Install-Package IronOcr
这将自动下载 IronOCR 并安装到项目中。
现在,我们可以在项目中使用 IronOCR 了。
只需要一个命名空间,需要添加到我们需要访问 IronOCR 功能的源代码文件之上。
using IronOcr;
using IronOcr;
Imports IronOcr
现在,让我们安装 Nanonets OCR API。
以下是更正后的段落:
Nanonets 可通过多种方式获取数据。 它提供了在线 OCR 功能,可用于即时提取数据,缩短周转时间。 作为一个 REST API,它可以集成到多种编程语言中。 在此,我们将演示如何将其整合到 C# 编程语言中。
要使用 C# 中的 Nanonets OCR API 自动采集数据,您需要具备以下条件:
注册 Nanonets - 您可以使用 Gmail 帐户或 Nanonets 的注册电子邮件注册免费试用版。
创建 OCR 模型 - 这将生成一个模型 ID,在以后调用 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 提供了读取图像的实用功能,其中包括检测和读取条形码和 QR 码的功能。 要启用此功能,请在处理图像前将 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
输入图片中的三个 BarCode 都已成功读取,并显示了隐藏的文本。
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 文件相同。
Nanonets OCR API 还可从 PDF 文件中读取数据。 除了请求中使用的 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 用于开发目的是免费的,但用于商业用途需要获得许可。 它还提供免费试用,以测试其满足您需求的所有潜力。 Lite 软件包起价为 $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 扫描中的 BarCode,甚至能将 OCR 导出为 HTML 和可搜索的 PDF。 有关 C# Tesseract OCR 的更多信息,请单击这里.
Nanonets OCR API 提供各种 OCR 工具。 它为发票、收据、账单、表格和身份证等多种文档类型提供即用型 OCR 解决方案,以实现数据采集自动化。 无需模板设置,没有任何隐藏费用,使用 Nanonets OCR API 可节省 90% 的时间,提高 10 倍的工作效率。
IronOCR 许可证是基于开发人员的,这意味着您应始终根据将使用该产品的开发人员数量来购买许可证。 Nanonets 的定价计划基于提取信息和分析数据的图像或 PDF 页数。 专业版和企业版计划是按月计算每个模型的价格,与 IronOCR 许可证相比,当模型和页面数量增加时,价格也会增加。 此外,IronOCR 许可证为一次性购买,可终身使用,支持 OEM 和 SaaS 分发。
总体比较来看,这两个 API 都提供了基于人工智能和 ML 的 OCR 功能。 IronOCR 与 Nanonets 相比略胜一筹,因为它可以离线使用,即使是非结构化文档也能提供更可靠的结果。 IronOCR 提供了使用自定义训练数据的设施,可快速集成,以获得更准确的结果。 Nanonets OCR 提供了根据关键字段训练模型的功能,如果训练不当,就很难检测出来。 此外,IronOCR 还提供多语言支持,支持多达 127 种以上的国际语言。
现在,作为完整 Iron Suite 的一部分,您可以用两种产品的价格获得五种 Iron 产品。请访问链接了解更多。