IRONSOFTWAREHOME
USING IRONOCR

如何在 C# GitHub项目中使用IronOCR实现 OCR

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年2月27日

在GitHub上搜索 OCR 解决方案通常会得到零散的文档、复杂的 Tesseract 配置以及多年未更新的项目。 对于需要从图像和 PDF 中可靠提取文本的 C# 开发人员来说,浏览存储库生态系统可能会耗费数小时,而这些时间本可以更好地用于编码。 许多开源光学字符识别项目需要手动进行二进制管理、下载 tessdata 文件以及针对特定平台的故障排除。

本教程演示了如何使用IronOCR(一个托管库)在 C# 项目中实现 OCR 功能,IronOCR 消除了原始 Tesseract 包装器常见的配置开销。 无论是构建文档处理管道还是向现有应用程序添加文本识别功能,本指南都提供了适用于任何 OCR C# GitHub项目的工作代码示例。

如何开始使用IronOCR?

IronOCR for .NET 提供了一个通过 NuGet 发布的托管 .NET 库,可以直接集成到任何 GitHub 存储库中。 与需要手动管理二进制文件和 tessdata 配置的开源 Tesseract OCR 封装器不同, IronOCR在内部处理这些依赖项,并且可以在 Windows、Linux 和 macOS 上开箱即用。

该库在 GitHub 上维护官方示例库,开发人员可以克隆和参考。 这些示例展示了实际应用,包括图像转文本、支持多种语言和 PDF 处理。 贡献者无需任何额外设置,即可在克隆后立即测试功能。

要在 Visual Studio 中开始使用,请通过 NuGet 包管理器安装 IronOCR:

PM > Install-Package IronOcr

OCR C# GitHub:使用IronOCR实现文本识别:图像1 - 安装

安装完成后,这个软件包包含了OCR操作所需的一切。 该库支持.NET Framework 4.6.2+、. .NET Core和.NET 5 至 10,以实现跨项目类型的最大兼容性。

如何在 C# 中从图像格式中提取文本?

以下示例演示如何使用IronOCR的IronTesseract类进行基本文本提取。 该 OCR 引擎可读取各种图像格式,包括 PNG、JPG、JPEG、BMP、GIF 和 TIFF:

using IronOcr;

// Initialize the OCR engine
var ocr = new IronTesseract();

// Load and process an image
using var input = new OcrInput("document-scan.png");

// Perform OCR and retrieve results
var result = ocr.Read(input);

// Output the extracted text to console
Console.WriteLine($"Extracted Text:\n{result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");

IronTesseract类作为主要OCR引擎,基于优化的Tesseract 5实现。 创建实例后,OcrInput对象从磁盘、URL或字节数组中加载目标图像。 Read方法处理输入,并返回包含提取的纯文本以及表示识别准确性的置信度百分比的OcrResult。 较高的置信度值(90% 以上)通常表示源文件干净整洁、格式规范。

OcrResult对象提供对识别内容的结构化访问。 除了纯文本外,开发人员还可以访问单个单词、行、段落和字符,以及它们的位置和置信度分数。 每个Word包括边界矩形坐标,对需要精确文本定位数据的应用程序,如文档注释或表单字段提取,非常有价值。

输入

OCR C# GitHub:使用IronOCR实现文本识别:图像2 - 样本输入

输出

OCR C# GitHub:使用IronOCR实现文本识别:图像3 - 控制台输出

IronOCR还支持从流和字节数组加载图像,这对于接收文件上传的 Web 应用程序尤其有用。 这意味着 OCR 处理可以完全在内存中进行,而无需将临时文件写入磁盘,从而减少高吞吐量环境下的输入输出开销。

OCR C# GitHub:使用IronOCR实现文本识别:图像4 - 功能

图像预处理如何提高光学字符识别的准确性?

扫描文件通常会出现偏斜、噪音或分辨率不理想的情况。 IronOCR内置了预处理过滤器,可以在 OCR 引擎处理图像之前纠正这些问题:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("skewed-receipt.jpg");

// Apply preprocessing filters to enhance scan quality
input.Deskew();                    // Straighten rotated images
input.DeNoise();                   // Remove digital artifacts
input.EnhanceResolution(225);      // Optimize DPI for OCR

var result = ocr.Read(input);
Console.WriteLine(result.Text);

Deskew方法自动检测并纠正图像旋转度数,最多可达15度,处理扫描仪上稍微放偏的页面这一常见情况。 DeNoise过滤器去除常见于拍摄文件或较旧扫描件中的噪点和伪影。 EnhanceResolution将低DPI图像提高到200-300 DPI范围,这是光学字符识别准确性的最佳范围。

这些过滤器可以串联起来,完全在内存中运行,无需临时文件。 在许多情况下,对存在严重质量问题(例如墨迹褪色、背景噪声或相机畸变)的文档进行多次预处理可以显著提高文本识别结果。 对于分辨率低于 150 DPI 的扫描文档或在光线不均匀条件下拍摄的照片,改进效果最为明显。

感兴趣区域裁剪如何提高性能?

对于仅有部分图像包含相关文本的文档,定义裁剪区域可减少处理时间并减少背景噪声引起的误报:

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();
using var input = new OcrInput("invoice.png");

// Define crop region (x, y, width, height in pixels)
var cropArea = new CropRectangle(50, 100, 600, 300);
input.AddRegion(cropArea);

var result = ocr.Read(input);
Console.WriteLine(result.Text);

在处理发票或表格等结构化文档时,针对特定区域进行定位尤其有价值,因为这些文档中的文本字段占据已知位置。 与全图像分析相比,这种方法可以减少 40-70% 的 OCR 处理时间,具体取决于图像中无关部分的比例。

您能否在提取文本的同时提取 BarCode 和 QR 码?

IronOCR可以同时识别同一文档中的文本并扫描条形码。 这种双重功能对于处理发票、发货标签和库存文件非常有用:

using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;  // Enable barcode detection

using var input = new OcrInput("shipping-label.png");
var result = ocr.Read(input);

// Access extracted text
Console.WriteLine($"Text: {result.Text}");

// Access any barcodes found in the image
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"Barcode ({barcode.Format}): {barcode.Value}");
}

Barcodes集合包含每个检测到的条形码的值和格式类型。 支持的格式包括二维码、Code 128、EAN-13、UPC、Data Matrix 和 PDF417。这种双重功能在处理包含人可读文本和机器可读代码的文档时,无需单独的条形码扫描库。

输入

OCR C# GitHub:使用IronOCR实现文本识别:图像5 - 样本条形码图像

输出

OCR C# GitHub:使用IronOCR实现文本识别:图像6 - 控制台条形码文本输出

对于仓库和物流应用而言,将文本和条形码提取合并到一次处理中,可以减少 API 调用次数,简化应用程序架构。 单次Read操作返回文档中所有可识别的数据,无论是打印文字、手写还是机器可读代码。 OcrResult.Barcodes属性公开了类型化的集合,因此下游代码可以迭代结果而无需格式特定的解析逻辑。

如何从扫描图像生成可搜索的 PDF?

将扫描文档转换为可搜索的 PDF ,可以在文档管理系统中进行文本选择、复制和全文搜索。 可使用各种图像格式作为输入:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("scanned-contract.tiff");
var result = ocr.Read(input);

// Export as searchable PDF with invisible text layer
result.SaveAsSearchablePdf("contract-searchable.pdf");

SaveAsSearchablePdf方法嵌入与识别内容匹配的不可见文本层,保持原始文档外观同时启用文本操作。 这样就能生成适用于档案管理和Enterprise文档管理系统的文档。 IronOCR 还支持将结果导出为HTML 或 JSON 以进行与下游系统的集成。

对于多页文档, IronOCR会逐页处理,并将结果合并成一个文件。它还能自动处理包含多个帧的 TIFF 文件,从而简化扫描文档的批量转换流程。 生成的 PDF 文件保留了原始扫描件的视觉布局,同时嵌入的文本层使得每一页都可以在任何 PDF 查看器或文档管理平台中进行全文搜索。

如何在多语言应用程序中使用IronOCR ?

IronOCR支持125 多种语言,包括英语、西班牙语、法语、德语、中文、日语、阿拉伯语等。 语言包通过NuGet作为单独的程序包进行安装,从而保持核心库的轻量级:

using IronOcr;

// Install-Package IronOcr.Languages.French
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.French;

using var input = new OcrInput("french-document.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);

对于同一页面上包含多种语言的文档, IronOCR支持同时加载多种语言模型。 这对于处理来自多个地区的文档而无需预先按语言对文件进行分类的国际化应用程序来说非常重要。 每个语言包都与核心库一起维护,并支持相同的预处理和输出功能。

GitHub 项目中 OCR 的最佳实践是什么?

在GitHub上维护 OCR 项目时,一些组织决策可以改善贡献者的体验和项目的长期健康。 无论您是构建小型实用程序脚本还是大型Enterprise文档处理服务,这些做法都适用。

对于大型测试镜像,请使用Git LFS避免增加仓库体积。标准 Git 历史记录中的二进制资源会增加克隆时间和存储成本,尤其是在测试数据集包含高分辨率扫描时。 许可证密钥应存储在环境变量或GitHub Secrets 中,切勿存储在已提交的 C# 代码中; 请参考许可证密钥配置指南以获取设置说明。

在专用test-data文件夹中包含样本图像,以便贡献者在不来源自己文档的情况下验证OCR功能。 在 README 文件中记录支持的图像格式和.NET版本要求,以减少新用户上手时遇到的问题。 使用GitHub Actions在 CI 流水线中构建和运行测试,以确认库在目标环境中的功能是否正确。

对于GitHub Actions 工作流, IronOCR在 Windows 和 Linux 运行器的容器化环境中运行。 请参阅Linux 部署指南,了解针对 Ubuntu 或其他非 Windows 运行器的配置详情。

下一步计划是什么?

IronOCR通过 NuGet 分发的库为 C# GitHub项目带来可靠的文本识别功能,该库可处理 Tesseract 配置、预处理、条形码检测和多语言支持,而无需外部二进制依赖项。 本指南中的代码示例涵盖了核心用例:基本文本提取、图像预处理、条形码扫描、可搜索 PDF 创建和多语言处理。

要体验全部功能,即可开始免费试用,无需时间限制或信用卡。 准备进行生产部署时,请查看涵盖从个人开发人员到Enterprise团队的许可选项

相关资源,助您拓展知识:

相关文章

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 天试用密钥
无需信用卡或创建账户