IRONSOFTWAREHOME

如何使用 IronOCR 构建 Azure OCR 服务

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

Iron Software 创建了一个 OCR(光学字符识别)库,解决了 Azure OCR 集成中的互操作性问题。 对于开发人员来说,在 Azure 上使用 OCR 库一直有点麻烦。 IronOCR 可以解决这个问题以及许多其他 OCR 难题。

IronOCR 为 Microsoft Azure 提供的功能

IronOCR 包含以下功能,可用于在 Microsoft Azure 上构建 OCR 服务:

将 PDF 文件转换为可搜索文档,以便轻松提取文本。

  • 通过从图像中提取文本,将图像转换为可搜索的文档
  • 可读取条形码和二维码
  • 极高的准确性
  • 可在本地运行,无需 SaaS(软件即服务),SaaS 是一种软件分发模式,其中云提供商(例如 Microsoft Azure)托管各种应用程序,并将这些应用程序提供给最终用户。
  • 闪电般的速度

让我们来看看最好的 OCR 引擎——Iron Software 的 IronOCR——是如何让开发人员更容易地从任何输入文档中提取文本的。

让我们开始使用 Azure OCR 服务吧

要开始使用该示例,我们需要先安装 IronOCR。

  1. 使用 C# 创建一个新的控制台应用程序。
  2. 通过NuGet安装IronOCR,可以通过输入:Install-Package IronOcr 或选择管理NuGet包并搜索IronOCR。 如下所示。
  3. 编辑您的 Program.cs 文件,使其如下所示:
  • 我们导入IronOCR命名空间,以利用其OCR功能读取并提取PDF文件内容。
    • 我们创建一个新的 IronTesseract 对象,以便从图像中提取文本。
using IronOcr;
using System;

namespace IronOCR_Ex
{
    class Program
    {
        static void Main(string[] args)
        {
            var ocr = new IronTesseract();
            using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
            {
                var result = ocr.Read(Input); // Read PNG image File
                Console.WriteLine(result.Text); // Output extracted text to console
                Console.ReadLine();
            }
        }
    }
}
  1. 接下来,我们打开名为 Purgatory.PNG 的图像。 这幅图出自但丁的《神曲》——我最喜欢的书之一。 这张图片看起来像下一张图片。

通过IronOCR的光学字符读取功能提取的文本

图 2 - 使用 IronOCR 的光学字符识别功能提取的文本

  1. 从上述输入图像文本中提取出上述文本后的输出。

提取的文本

图 3 - 提取的文本

  1. 让我们对 PDF 文档执行同样的操作。 PDF 文档包含与图 2 相同的待提取文本。

唯一的区别是我们将使用PDF文档而不是图像。 请输入以下验证码:

var OCR = new IronTesseract();
using (var input = new OcrInput())
{
    input.Title = "Divine Comedy - Purgatory"; // Give title to input document 
    // Supply optional password and name of document
    input.LoadPdf("..\\Documents\\Purgatorio.pdf", Password: "dante");
    var result = OCR.Read(input); // Read the input file
                
    result.SaveAsSearchablePdf("SearchablePDFDocument.pdf"); 
}
C#

这段代码与之前从图像中提取文本的代码几乎相同。

在这里我们利用 OcrInput 方法读取当前的PDF文档,在本例中为:Purgatorio.pdf。 如果 PDF 文件中包含元数据,例如标题或密码,我们也可以将其输入。

结果会保存为可搜索的 PDF 文档,我们可以在其中搜索文本。

注意:如果 PDF 文件过大,可能会抛出异常。

  1. Windows 应用程序就介绍到这里吧; 让我们来看看如何将 OCR 与 Microsoft Azure 结合使用。

IronOCR 的优点在于它可以作为微服务架构中的 Azure 函数与 Microsoft Azure 完美配合。 以下是一个与 IronOCR 配合使用的 Microsoft Azure 函数的简要示例。此 Microsoft Azure 函数用于从图像中提取文本。

public static class OCRFunction
{
    public static HttpClient hcClient = new HttpClient();

    [FunctionName("IronOCRFunction_EX")]
    public static async Task<IActionResult> Run([HttpTrigger] HttpRequest hrRequest, ExecutionContext ecContext)
    {
        var URI = hrRequest.Query["image"];
        var saStream = await hcClient.GetStreamAsync(URI);

        var ocr = new IronTesseract();
        using (var inputOCR = new OcrInput(saStream))
        {
            var outputOCR = ocr.Read(inputOCR);
            return new OkObjectResult(outputOCR.Text);
        }
    }
} 

这会将函数接收到的图像直接提供给 OCR 引擎,以输出提取的文本。

以下是微软对 Microsoft Azure 的简要概述:

Microsoft Azure 微服务是一种构建应用程序的架构方法,其中每个核心功能或服务都是独立构建和部署的。 微服务架构是分布式且松耦合的,因此一个组件的故障不会导致整个应用程序崩溃。独立的组件协同工作,并通过定义完善的 API 契约进行通信。 构建微服务应用程序,以满足快速变化的业务需求,并更快地将新功能推向市场。

IronOCR 与 .NET 或 Microsoft Azure 结合使用时还具有以下一些特性:

  • 能够对几乎任何文件、图像或 PDF 执行 OCR 操作。
  • 处理 OCR 输入的速度极快
  • 极高的准确性
  • 读取条形码和二维码
  • 本地运行,无需 SaaS 服务
  • 可以将 PDF 和图像转换为可搜索的文档
  • 微软认知服务提供的 Azure OCR 的绝佳替代方案

用于提高OCR性能的图像过滤器

  • OcrInput.Rotate - 将图像顺时针旋转若干度。对于逆时针旋转,使用负数。
  • OcrInput.Binarize() - 此图像滤镜将每个像素变为黑色或白色,无中间色。 这提高了OCR识别性能。
  • OcrInput.ToGrayScale() - 此图像滤镜将每个像素变为灰度。 这样可以提高OCR识别速度。
  • OcrInput.Contrast() - 自动增加对比度。 该滤镜可提高低对比度扫描图像的 OCR 速度和准确性。
  • OcrInput.DeNoise() - 去除数字噪声。仅在输入文档中预期有噪声时使用此滤镜。
  • OcrInput.Invert() - 颠倒所有颜色。
  • OcrInput.Dilate() - 膨胀向图像中任何对象的边界添加像素。
  • OcrInput.Erode() - 侵蚀移除对象边界上的像素。
  • OcrInput.Deskew() - 旋转图像以使其正面朝上并与基准线垂直。 这对于 OCR 非常有用,因为 Tesseract 对倾斜扫描的容差可以低至 5 度。
  • OcrInput.DeepCleanBackgroundNoise() - 多背景噪声去除。
  • OcrInput.EnhanceResolution - 提升低质量图像的分辨率。

速度性能

以下是一个例子:

var OCR = new IronTesseract();
OCR.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
OCR.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
OCR.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
OCR.Configuration.EngineMode = TesseractEngineMode.LstmOnly;
OCR.Language = OcrLanguage.EnglishFast;
using (var Input = new OcrInput())
{
    Input.LoadImage("..\\Images\\Purgatory.PNG");
    var Result = OCR.Read(Input);
    Console.WriteLine(Result.Text);
}
C#

定价和许可选项

基本上有三个付费许可级别,都是一次性购买,终身使用。

是的,这些资源可以免费用于开发目的。

更多信息

IronOCR 为在 Azure 和其他系统上运行 OCR 的 .NET 应用程序提供功能

IronOCR 支持 125 种国际语言。 每种语言均提供快速、标准和最佳三种质量版本。 部分可用的语言包包括:

  • 保加利亚语
  • 亚美尼亚语
  • 克罗地亚语
  • 南非荷兰语
  • 丹麦语
  • 捷克语
  • 菲律宾语 芬兰语
  • 法语
  • 德语
  • 还有更多语言包可供选择,要查看它们,请点击以下链接。 IronOCR 语言包
  • 它在 .NET 中开箱即用。
    • 支持 Xamarin
    • 支持 Mono
    • 支持 Microsoft Azure
    • 支持 Microsoft Azure 上的 Docker
    • 支持 PDF 文档
    • 支持多帧 TIFF 格式
    • 支持所有主流图像格式 支持以下 .NET Framework:
    • .NET Framework 4.5 及更高版本
    • .NET Standard 2
    • .NET Core 2
    • .NET Core 3
    • .NET Core 5
  • 即使没有安装 Tesseract(一个支持 Unicode 和 100 多种语言的开源 OCR 引擎),IronOCR 也能正常工作。
    • 与 Tesseract 相比,精度有所提高。
    • 速度比 Tesseract 更快。
  • 校正低质量的文档或文件扫描件。
  • 校正低质量、倾斜的文档或文件扫描件。

什么是光学字符识别(OCR)?

根据维基百科的定义:光学字符识别是将打印文本的图像(无论是扫描文档、文档照片、场景照片还是叠加在图像上的字幕文本)电子或机械地转换为机器编码文本的过程。 OCR是光学字符识别的缩写。 光学字符识别主要有四种类型:

  • OCR - 光学字符识别,目标是从输入文档中识别打字文本,一次识别一个字符或字形(一组约定的符号中的基本符号,例如不同字体中的"a")。
  • OWR - 光学单词识别,目标是从输入文档中逐个识别打印文本。
  • ICR - 智能字符识别,目标是印刷文本,例如印刷体(不与其他字母连接的字符)和草书文本,一次识别一个字符或字形。
  • IWR - 智能单词识别,针对草书文本。

常见问题解答

我如何在Azure上的C#应用程序中集成OCR功能?

您可以通过创建一个新的控制台应用程序并通过NuGet安装IronOCR来在Azure上的C#应用程序中集成OCR功能。请使用命令Install-Package IronOcr或在NuGet包管理器中搜索IronOCR。

使用IronOCR而不是Azure的本地OCR服务有什么好处?

IronOCR提供了几个Azure本地OCR服务无法比拟的优势,包括更高的准确性、更快的处理速度以及无需SaaS即可本地运行。它还支持多种语言,并提供图像滤镜以增强OCR性能。

我如何设置一个用于OCR文本提取的Microsoft Azure函数?

要设置一个用于OCR文本提取的Microsoft Azure函数,您可以使用IronOCR创建一个从图像中提取文本的函数。这是微服务架构的一部分,让您可以无缝地将OCR功能集成到Azure应用中。

IronOCR能否在OCR处理过程中支持多种语言?

是的,IronOCR支持125种国际语言,每种语言均提供快速、标准和最佳质量,使其对于全球应用非常通用。

IronOCR有哪些图像处理选项可以提高OCR准确性?

IronOCR提供多种图像处理选项,如旋转、二值化、灰度化、对比度、去噪、反转、膨胀、腐蚀、去偏斜、深度清理背景噪声和增强分辨率,以提高OCR结果的准确性和可靠性。

IronOCR与各种.NET框架兼容以进行Azure部署吗?

是的,IronOCR与.NET Framework 4.5及更高版本、.NET Standard 2、.NET Core 2、.NET Core 3和.NET Core 5兼容。它还支持Xamarin、Mono,并且可以在Microsoft Azure上使用Docker进行部署。

在Azure上运行IronOCR是否需要任何附加软件?

在Azure上运行IronOCR不需要任何附加软件。相比Tesseract而言,它无需安装即可单独运行,并提供更高的准确性和速度。

IronOCR 提供哪些授权选项?

IronOCR提供三种付费许可层级,基于一次性购买、终身许可模式。这些许可证对于开发目的免费,提供了项目扩展的灵活性。

我如何使用IronOCR将图像和PDF转换为可搜索文档?

IronOCR允许您通过利用其OCR功能提取和识别文本,将图像和PDF转换为可搜索文档,使其易于搜索和索引。

使用IronOCR读取条形码和二维码的过程是什么?

IronOCR可以利用其内置功能读取条形码和二维码,通过扫描和提取这些代码中的数据,便利其在Azure上的C#应用中的集成。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 6,236,385版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索"IronOCR"
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在这里下载Windows安装程序。

  1. 下载并解压IronOCR到你的解决方案目录中的~/Libs位置
  2. 在Visual Studio解决方案资源管理器中,右键点击引用。选择浏览,“IronOCR.dll”

许可证售价$999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户