与其他组件比较

IronOCR与Tesseract.NET的比较

发布 2022年八月31日
分享:

光学字符识别可识别图像中可读取的文本。光学字符识别有多种用途。例如,它可以扫描旧的纸质文件并将其数字化,然后转换成可搜索的电子文件。它还可用于执法部门通过检查照片和视频来识别犯罪证据。机器或计算机要想识别任何文件上的字符,就必须了解这些字符所使用的字体和书写系统。通常,这种理解来自于称为图像识别算法的人工智能软件,这些算法是在大量文本图像数据集上经过训练和调整的。

OCR 是一项重要技术,用途广泛。它通常用于读取扫描的纸质文档,将其转换为可通过计算机编辑和搜索的数字文件。不过,OCR 也可以应用于其他各种类型的信息,包括标志或标签上的印刷文本,支票、表格和其他商业记录中的手写或打字文本,甚至是从录音中转录的医疗记录。

在本文中,我们将比较两个 .NET OCR 库。

  • IronOCR
  • Tesseract.NET SDK

介绍

IronOCR 功能

IronOCR 是最新、最先进的 OCR (光学字符识别) IronOCR 是一款适用于 .NET C# 和 VB.NET 的扫描程序库。IronOCR 可以扫描所有图像格式的条形码和 QR 码,还可以使用最新的 Tesseract 5 引擎读取文本和执行 PDF 扫描。IronOCR 可以在所有 .NET 项目模板(如桌面应用程序、控制台和 Web 应用程序)中添加 OCR 功能,只需几行代码,无需添加库。IronOCR 是 .NET 项目中最精确的 OCR 引擎之一。

让我们来讨论一下 IronOCR 的一些独特功能:

  • IronOCR 纯粹为 .NET 应用程序而设计。
  • IronOCR 支持多达 127 种语言。
  • IronOCR 可以校正倾斜图像的位置,消除图像中的噪点,从而实现精确输出。
  • IronOCR 在处理低分辨率、低 DPI 图像时表现尤为出色。
  • IronOCR 可读取多种类型的 QR 码和条形码。
  • IronOCR 还支持 Gif 和 Tiff 格式。
  • IronOCR 支持多线程。这是其他 OCR 库所不具备的神奇功能。它使处理过程更加流畅。
  • IronOCR 可以轻松地对 PDF 文件执行 OCR,并使用 OCR 导出可搜索的 PDF 文档。

IronOCR 支持所有主要语言,包括阿拉伯语、中文、英语、芬兰语、法语、德语、日语等。IronOCR 提供以不同格式显示输出的功能,如条形码数据、纯文本或包含行、字、段落和字符的 OCR 结果类。IronOCR 使用 Tesseract 库技术。

IronOCR 兼容 Mac、Windows 和 Linux 机器。它还支持 Azure 和 Docker 云解决方案。IronOCR 的最新更新包括支持 .NET core 3.1 和 .NET 6,还支持 Xamarin for MacOS。

Tesseract OCR 库功能

Tesseract.net SDK 是 Patagames 的产品,它是一种光学字符识别技术。 (光学字符识别) Tesseract.NET SDK 是一个用于 .NET 项目的 OCR 库,它提供了一种在 .NET 应用程序中添加 OCR 功能(如文本识别)的方法。Tesseract.NET SDK 是一个 OCR 引擎,可以读取各种图像格式并将图像转换为文本。它支持多达 60 种语言。它还支持阅读和扫描 PDF 文档,并将其转换为可搜索的 PDF 文件。基本上,Tesseract.NET SDK 是一个基于 Tesseract OCR 项目的类库。它有一个用于执行 OCR 的 Tesseract 引擎。Patagames.Ocr.xml包含API的**XML文档。

Tesseract.NET SDK支持32位和64位操作系统上的.NET Framework 2.0至4.5。该 SDK 可用于 Windows XP 和其他 Windows 版本,如 Windows 7、Vista、8、10 和 11。它兼容 32 位和 64 位操作系统,便于在任何 CPU 上使用。

遗憾的是,.NET SDK 不支持 macOS 或 Linux。

使用 IronOCR 和 Tesseract.NET SDK

让我们看看如何在项目中使用 IronOCR 和 Tesseract.NET SDK。

在 Visual Studio 中创建 C# 项目

我们使用 Visual Studio 2022 版本创建此项目。建议使用最新版本的 Visual Studio,以便顺利进行。接下来,打开 Visual Studio 并点击 "创建新项目"。然后,点击模板中的 "控制台应用程序 "并配置项目。

现在输入项目名称。我将命名为 "IronOCR vs Tesseract.NET SDK"。然后,选择要创建项目的路径,点击 Enter。

然后,选择 .NET 版本。我们使用的是最新的 .NET 版本,即 .NET 6,IronOCR 也支持该版本。您可以使用最适合项目要求的版本。

点击 "创建 "按钮后,项目模板将创建项目,现在可以安装库了。让我们直接安装库。

安装 IronOCR 和 Tesseract.NET SDK

现在是安装库和检查功能的时候了。首先,我们将安装 IronOCR 库。

安装 IronOCR

IronOCR 支持多种安装方法。我们可以选择任何方法。所有方法都是安全的。

  • 使用 Visual Studio NuGet 软件包管理器
  • 使用 NuGet 软件包管理器命令行。
  • 直接从 NuGet 网站.
  • 直接从 IronOcr 网站.

使用 Visual Studio NuGet 包管理器

我们可以使用 Visual Studio 中的 NuGet 包管理器图形用户界面安装 IronOCR 库。我们可以点击工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包来访问它。

转到 "浏览 "选项卡,搜索 IronOCR。从搜索结果中选择 IronOCR 并将其安装到我们的项目中。

现在,我们已经在项目中安装了 IronOCR 库。它可以在我们的 .NET 项目中使用了。

使用 NuGet 软件包管理器命令行

我们可以使用 NuGet 软件包管理器控制台来安装 IronOCR 库。转到命令行(通常位于代码文件下方),然后在命令行中写入以下一行并点击 Enter。


安装软件包 IronOcr

它将开始安装 IronOCR 库。安装完成后,它就可以在我们的项目中使用了。

安装 Tesseract.NET SDK

我们可以使用NuGet软件包管理器安装Tesseract.NET SDK。要安装 Tesseract.NET SDK,请转到 工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包。转到 "浏览 "选项卡,搜索 Tesseract.NET SDK。从搜索结果中选择 Tesseract.NET SDK 并安装。安装完成后,我们就可以在程序中使用 Tesseract.NET SDK 了。

安装完成后,您可以在解决方案资源管理器中看到这三个文件夹。

这些文件夹包含 Tesseract 执行 OCR 所需的基本数据。现在,我们可以在项目中嵌入 OCR 功能了。

OCR 图像

现在是测试 IronOCR 和 Tesseract.NET SDK 功能的时候了。这两个库都可以对图像进行 OCR 识别。我们将使用带有文本的倾斜且嘈杂的图像对它们进行测试。

测试图像

这是我们将用于测试的图像。

使用 Tesseract.NET SDK

首先,我们来看看 Tesseract.NET SDK 为测试图像生成的输出结果。让我们来看看代码:

using Patagames. Ocr;

using (var api = OcrApi.Create())
{
    api.Init(Patagames.Ocr.Enums.Languages.English);
    string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    Console.WriteLine(plainText);
}
using Patagames. Ocr;

using (var api = OcrApi.Create())
{
    api.Init(Patagames.Ocr.Enums.Languages.English);
    string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    Console.WriteLine(plainText);
}
Imports Patagames.Ocr

Using api = OcrApi.Create()
	api.Init(Patagames.Ocr.Enums.Languages.English)
	Dim plainText As String = api.GetTextFromImage("C:\Users\Administrator\Desktop\Input.jpg")
	Console.WriteLine(plainText)
End Using
VB   C#

首先,我们将导入 Patagames.OCR 库,以便使用 Tesseract.NET SDK。OCR 库,以便使用 Tesseract.NET SDK。然后,我们将使用 Create 函数创建一个 OcrApi。然后,我们将使用 Init 函数将默认语言设置为英语。接下来,我们将使用 GetTextFromImage 方法从图像中提取纯文本,并在参数中提供图像文件的路径。然后,我们将提取的文本写入控制台。

接下来看看 Tesseract.NET SDK 生成的输出结果:

这就是 Tesseract.NET SDK 的输出结果。首先,它会根据分辨率给出错误信息,这表明它只对高分辨率图像有效。出错后,我们可以看到从图像中提取的文本。如果我们将这些文本与图像进行比较,就会发现两者完全不同。提取出的文本中有许多毫无意义的无关文本。总的来说,Tesseract.NET SDK 没有通过这项测试。

使用 IronOCR

接下来,我们将看到 IronOCR 的结果。在跳转到结果之前,我们先看看 IronOCR 的代码:

using IronOcr;
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;
using (var Input = new OcrInput())
{
    Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    Input.Deskew();
    Input.DeNoise();
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;
using (var Input = new OcrInput())
{
    Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    Input.Deskew();
    Input.DeNoise();
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Using Input = New OcrInput()
	Input.AddImage("C:\Users\Administrator\Desktop\Input.jpg")
	Input.Deskew()
	Input.DeNoise()
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
End Using
VB   C#

在上面的代码中,我们将 IronOCR 库导入程序,然后创建一个 IronTesseract 对象,帮助启动进程。之后,我们将进程语言设置为英语。现在,实际工作可以开始了。我们创建 OcrInput 对象。使用 AddImage 函数将图像路径分配给输入变量。我们使用 Deskew 函数将图像旋转到实际位置,然后使用 Denoise 函数去除图像中的噪点。这将带来更好的效果。之后,我们使用读取功能识别文本,并从测试图像中提取文本。接下来,我们在控制台中显示结果。您还可以在项目文件中将输出保存为 PDF 文件。

以下是 IronOCR 生成的输出结果:

如果我们比较一下输出结果,它与图像上的文本是一样的。IronOCR 能完美提取文本,不会出现任何错误。IronOCR 可以从扭曲和旋转的图像中提取文本。它甚至还能处理低分辨率图像。

IronOCR 还支持添加多帧图像。我们可以使用 "AddMultiFrameTiff "方法来完成这一操作。IronOCR 会读取图片中的每一帧,并将每一帧视为一个单独的页面。此方法仅支持 Tiff 图像。

using IronOcr;

var Ocr = new IronTesseract();

using (var Input = new OcrInput())
{
    Input.AddMultiFrameTiff("images/multiframe.tiff");

    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();

using (var Input = new OcrInput())
{
    Input.AddMultiFrameTiff("images/multiframe.tiff");

    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()

Using Input = New OcrInput()
	Input.AddMultiFrameTiff("images/multiframe.tiff")

	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
End Using
VB   C#

让我们来看看制作可搜索 PDF 的代码:

using IronOcr;

var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddImage(@"images\page1.png")
    Input.AddImage(@"images\page2.bmp")
    Input.AddMultiFrameTiff(@"images\page3.tiff")

    Input.Deskew();

    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddImage(@"images\page1.png")
    Input.AddImage(@"images\page2.bmp")
    Input.AddMultiFrameTiff(@"images\page3.tiff")

    Input.Deskew();

    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

Private Ocr = New IronTesseract()
Using Input = New OcrInput()
	Input.AddImage("images\page1.png") Input.AddImage("images\page2.bmp") Input.AddMultiFrameTiff("images\page3.tiff") Input.Deskew()

	Dim Result = Ocr.Read(Input)
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
VB   C#

SaveAsSearchablePdf 功能有助于将文件保存为可搜索文件。

其他功能

  • 对比度这种图像滤镜会将每个像素变成黑色或白色,没有中间地带。
  • DeepCleanBackgroundNoise(深层清洁背景噪声):在已知极端文件背景噪声的情况下使用此滤镜。
  • 反转反转每种颜色。例如,白色变为黑色:黑色变为白色。
  • ReplaceColor:用另一种颜色替换颜色以减少噪点
  • ToGrayScale:此图像滤镜可将每个像素变成灰度阴影。
  • 还有很多其他功能和特性。

IronOCR 功能

IronOCR 支持 127 种语言。IronOCR 还支持 20 多种阅读方式的 QR 码和条形码。IronOCR 可以将图像转换为灰度图像,以获得更好的效果。IronOCR 可以手动或自动增强图像分辨率。它还支持自动对比度功能,以获得最佳效果。IronOCR 能以多种语言和格式导出文档,如可搜索 PDF、HTML 导出和任意页面的图像。IronOCR 支持以下多种输入格式:

  • 图像 (JPG、PNG、GIF、Tiff、BMP)
  • 多页 Gif 和 Tiff
  • 系统绘图对象
  • 数据流

  • PDF 文件

许可

IronOCR

IronOCR 可免费用于开发。它还提供用于开发的免费试用版。IronOCR 有多种用于生产的定价方案。您可以购买最符合您需求的计划。有个人、开发团队和组织级别的定价计划。一个开发人员和一个项目的精简版计划价格从 $749 起。所有计划均为一次性付款。用户可获得一年的免费更新。它还支持 SaaS 和 OEM 覆盖范围。专业计划售价 999 美元,无限计划售价 2999 美元。无限计划包括无限开发人员、项目和地点。

您可以通过以下链接了解有关定价计划的更多信息 链接.此外,Iron Software 目前还推出了一项优惠活动,您只需花两套软件的价格就可以购买一套五套软件。这五个软件包都非常出色:IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper。

Tesseract.NET SDK

Tesseract.NET SDK也有定价计划。Tesseract.NET SDK计划的起价为220美元,适用于一名开发人员和一个项目。需要注意的是,该定价计划包含一个续订计划。因此,您必须按年或按月付费,以确保 Tesseract.NET SDK 在您的项目中运行。您可以通过以下链接了解有关 Tesseract.NET SDK 定价计划的更多信息 链接.

结论

IronOCR 是完成当前任务的完美库。IronOCR 还支持 127 种语言,这意味着它是全球通用的。它支持多种图像格式和 PDF 输入处理。它还能对图像进行预处理,以确保获得最佳效果。IronOCR 是一个引人注目的 .NET 库。它可以从图像的特定区域识别文字。IronOCR 注重准确性,在这方面的输出结果确实令人惊叹。开发人员无需任何其他文件和库即可执行 OCR。总之,它是一个完美的库。

Tesseract.NET SDK 也是.NET 项目的完善库。它提供 60 种语言的 OCR 服务。它基于 Tesseract OCR 项目。它可以利用其功能集将扫描图像转换为可搜索的 PDF。Tesseract.NET SDK 接受多种图像格式进行输入处理。它提供高级服务以支持其在 .NET 项目中的 OCR 功能。

IronOCR 和 Tesseract.NET SDK 都有定价计划。不过,IronOCR 的定价方案更加多样化,价格也比 Tesseract.NET SDK 便宜。这是因为 IronOCR 只接受一次性付款,而 Tesseract.NET SDK 可以按月或按年续约。因此,从长远来看,即使 Tesseract.NET SDK 的起始价格低于 IronOCR,您也必须为其支付更多费用。

通过对整个情况的分析和对两个库功能的测试,我们可以得出结论:在处理模糊、旋转、倾斜和略带噪声的文档时,IronOCR 的性能要优于 Tesseract.NET SDK。这两个库的 OCR 功能都不错,但 IronOCR 是一个高级库,具有更好的功能,如图像预处理、去噪和将图片旋转到原始位置。Tesseract.NET SDK 支持多达 60 种语言,而 IronOCR 支持多达 127 种语言。Tesseract.NET SDK 需要额外的文件来支持不同的语言,这增加了程序的体积。此外,Tesseract.NET SDK 最后一次更新是在很久以前。

IronOCR 为生产测试提供免费试用。目前,它还提供了一个极好的特价优惠,您只需花两个软件包的价格就可以购买全套五个 Iron 软件包。您可以通过以下网址获取更多优惠信息 链接.

< 前一页
IronOCR与PDFTRON OCR的比较
下一步 >
IronOCR和Dynamsoft OCR之间的对比

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 2,319,721 查看许可证 >