跳至页脚内容
使用 IRONOCR

OCR C# GitHub 集成:使用 IronOCR 构建文本识别应用程序

IronOCR 通过提供具有 99.8% 准确率、内置预处理功能和对 125 多种语言支持的单个 DLL 解决方案,简化了 C# GitHub 项目中的 OCR 集成,消除了原始 Tesseract 实现所需的复杂配置。

立即开始使用 IronOCR。
green arrow pointer

如果你是一名正在 GitHub 上探索 Tesseract OCR 的 C# 开发人员,那么你想要的可能不仅仅是代码。 您需要的是一个开箱即用的库,附带可运行的示例,并拥有活跃的社区支持。 可靠的集成和稳固的版本控制同样重要。

这时IronOCR就派上用场了。 在本指南中,我将逐步向您展示如何将 IronOCR 集成到您的 GitHub 项目中,以便您可以轻松地处理图像和 PDF 中的文本识别。 无论您的目标是抓取纯文本、提取结构化的单词和行,还是生成可搜索的 PDF以进行存档,IronOCR 都能满足您的需求。 该库的综合功能支持从条形码读取多语言 OCR 的所有功能。

我该如何开始使用 IronOCR 和 GitHub?

IronOCR 是一款出色的综合性OCR 解决方案,可与基于 GitHub 的开发工作流程和 .NET Core 项目无缝协作。 与需要复杂配置的原生 Tesseract 实现不同,IronOCR 提供了一个精炼的 API,只需几分钟即可运行。 对于光学字符识别概念的新手,IronOCR 的全面文档涵盖了从基本文本提取高级图像处理的所有内容。 该库内置了对图像滤镜OCR 优化技术的支持。

我应该使用哪种安装方法?

首先通过 NuGet 软件包管理器安装 IronOCR:

Install-Package IronOcr

Visual Studio 中的 NuGet 包管理器窗口显示了 IronOCR 包的搜索结果,其中包含可供安装的各种语言包

NuGet 使用 NuGet 安装

PM >  Install-Package IronOcr

IronOCR 上查看 NuGet 快速安装。超过 1000 万次下载,它正以 C# 改变 PDF 开发。 您也可以下载 DLLWindows 安装程序

对于高级安装场景,请参阅NuGet 包指南。 如果您要部署到特定平台,请查看WindowsLinuxmacOS甚至Docker 容器的指南。

哪里可以找到示例代码?

IronOCR 在 GitHub 上维护了多个示例和教程库。 官方的IronOCR 示例库提供了实际应用实现,而图像到文本教程库展示了您可以克隆和修改的实用用例。 这些仓库展示了带条码读取的 OCR多语言支持PDF 处理。 由于 NuGet 上经常发布软件包,您将始终能够访问最新的稳定版本。 演示部分提供了更多交互式示例。

流程图展示了 OCR 处理流程:GitHub OCR 代码库 → IronOCR 项目 → OCR 处理 → 提取的文本输出

如何在GitHub上创建我的第一个OCR项目?

让我们构建一个适合 GitHub 分享的全面 OCR 应用程序。 在 Visual Studio(或您首选的 IDE)中,创建一个新的控制台应用程序,项目结构如下,并遵循OCR 开发的最佳实践:

我应该采用哪种项目结构?

MyOcrProject/
├── src/
│   └── OcrProcessor.cs
├── images/
│   └── sample-invoice.jpg
├── .gitignore
├── README.md
└── MyOcrProject.csproj

该结构支持多种输入格式,包括JPG、PNG、TIFF 和 BMP 。 IronOCR 可以自动处理多页 TIFFGIF 文件

如何实现OCR处理代码?

以下是一个完整的 C# 代码示例,展示了 IronOCR 处理器的关键功能,包括图像预处理文本提取条形码检测

using IronOcr;
using System;
using System.IO;
namespace MyOcrProject
{
    public class OcrProcessor
    {
        private readonly IronTesseract _ocr;
        public OcrProcessor()
        {
            _ocr = new IronTesseract();
            // Configure for optimal accuracy
            _ocr.Configuration.ReadBarCodes = true;
            _ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
            _ocr.Language = OcrLanguage.English;
        }
        public void ProcessDocument(string imagePath)
        {
            using var input = new OcrInput();
            // Load and preprocess the image
            input.LoadImage(imagePath);
            input.Deskew();  // Straighten rotated images
            input.DeNoise(); // Remove digital noise
            input.EnhanceResolution(225); // Optimize DPI for OCR
            // Perform OCR
            var result = _ocr.Read(input);
            // Output results
            Console.WriteLine($"Confidence: {result.Confidence}%");
            Console.WriteLine($"Text Found:\n{result.Text}");
            // Process any barcodes found
            foreach (var barcode in result.Barcodes)
            {
                Console.WriteLine($"Barcode: {barcode.Value} ({barcode.Format})");
            }
            // Save as searchable PDF
            result.SaveAsSearchablePdf("output.pdf");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var processor = new OcrProcessor();
            processor.ProcessDocument("images/sample-invoice.jpg");
        }
    }
}
using IronOcr;
using System;
using System.IO;
namespace MyOcrProject
{
    public class OcrProcessor
    {
        private readonly IronTesseract _ocr;
        public OcrProcessor()
        {
            _ocr = new IronTesseract();
            // Configure for optimal accuracy
            _ocr.Configuration.ReadBarCodes = true;
            _ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
            _ocr.Language = OcrLanguage.English;
        }
        public void ProcessDocument(string imagePath)
        {
            using var input = new OcrInput();
            // Load and preprocess the image
            input.LoadImage(imagePath);
            input.Deskew();  // Straighten rotated images
            input.DeNoise(); // Remove digital noise
            input.EnhanceResolution(225); // Optimize DPI for OCR
            // Perform OCR
            var result = _ocr.Read(input);
            // Output results
            Console.WriteLine($"Confidence: {result.Confidence}%");
            Console.WriteLine($"Text Found:\n{result.Text}");
            // Process any barcodes found
            foreach (var barcode in result.Barcodes)
            {
                Console.WriteLine($"Barcode: {barcode.Value} ({barcode.Format})");
            }
            // Save as searchable PDF
            result.SaveAsSearchablePdf("output.pdf");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var processor = new OcrProcessor();
            processor.ProcessDocument("images/sample-invoice.jpg");
        }
    }
}
$vbLabelText   $csharpLabel

这个全面的例子展示了 IronOCR 的若干功能。 构造函数配置 OCR 引擎,启用了条码读取以及自动页面分段。 ProcessDocument方法演示了图像预处理,包括去斜(校正旋转)、去噪(去除伪影)和分辨率增强。 处理后,它以置信度分数提取英文文本,识别条码,并生成可搜索 PDF

对于高级场景,您可以利用OcrInput 类进行更多控制,使用异步处理以获得更好的性能,或者为长时间运行的操作实现进度跟踪OcrResult 类提供详细的输出数据,包括文本位置和OCR 结果

开发人员还可以轻松配置 IronOCR 以读取其他语言,如中文、西班牙语或法语,使其成为多语言 GitHub 项目的多才之选。 有关安装其他语言包的参考资料,请参阅125 种国际语言指南。 您甚至可以使用自定义语言文件训练自定义字体

分屏显示 OCR 演示:左侧显示白色背景上的倾斜 Lorem Ipsum 文本,右侧显示 Visual Studio 调试控制台,其中包含提取的文本输出和 87.34% 的置信度得分。

我应该在 .gitignore 文件中添加哪些内容?

对于您的 .gitignore 文件,包含以下内容:

# IronOCR runtime files
runtimes/
# Test images and outputs
*.pdf
test-images/
output/
# License keys
appsettings.*.json

了解更多关于IronOCR 运行时文件夹和正确的许可证密钥管理的信息。

为什么我应该选择 IronOCR 来处理我的 GitHub 项目?

IronOCR 为维护 GitHub 上 OCR 项目的开发人员提供了独特的优势。 该库开箱即用,便可实现 99.8% 的准确率,无需手动训练或复杂的配置文件使仓库变得混乱。 支持 125+ 种语言,您的 GitHub 项目可以无需修改地服务国际用户。 兼容性功能确保跨平台部署,支持 Windows、Linux、macOS 以及AzureAWS等云平台。

IronOCR 与其他 OCR 解决方案有何不同?

IronOCR 足够灵活,可以识别单个字、行和完整段落,让您能控制从每次扫描中提取多少细节。 该图书馆擅长处理各种特殊文档类型,包括车牌护照MICR支票手写文本、屏幕截图扫描文档,甚至文档中的表格

商业许可证为公共仓库提供法律清晰。 您被明确允许在商业应用中包含 IronOCR。 内置图像预处理滤镜包括高级选项,例如颜色校正质量增强,以及功能强大的滤镜向导,可自动找到最佳设置。

单 DLL 架构为何如此重要?

IronOCR 的单 DLL 架构意味着贡献者可以克隆您的仓库并立即开始开发,而不必处理其他 OCR 解决方案中困扰的本地依赖项或特定平台配置。 正是这种简洁性使得开发者选择IronOCR 而不是原始的 Tesseract 。 该库包含Tesseract 5 ,具有多项性能改进和多线程支持

OCR项目的版本控制最佳实践是什么?

在 GitHub 上管理 OCR 项目时,对于大型测试图像,请使用Git LFS 。 对于处理PDF 流图像流,请考虑使用System.Drawing 对象以更好地进行内存管理。

如何在 Git 中处理大文件?

git lfs track "*.jpg" "*.png" "*.tiff"
git add .gitattributes
git lfs track "*.jpg" "*.png" "*.tiff"
git add .gitattributes
$vbLabelText   $csharpLabel

在处理高分辨率图像或多页 TIFF 文件时,这一点尤其重要。 对于低质量扫描,IronOCR 的预处理可以显著改善结果。

我应该如何管理许可证密钥和文档?

使用环境变量或用户机密安全存储 IronOCR 许可证密钥,切忌直接提交它们。 遵循IronOCR 许可证密钥指南以实现正确的实现。 您也可以在 ASP.NET 应用程序的web.config 文件中配置许可证。 在 README 中记录支持的图像格式和预期的准确性。 在 test-data 文件夹中包含示例图像,供贡献者验证 OCR 功能。 对于跨平台开发,请参考IronOCR Linux 设置指南macOS 安装说明。 移动开发者应该查看Android 指南iOS 指南

对于高级功能,文档中介绍了计算机视觉在文本检测、页面旋转检测hOCR 导出以及长时间运行操作的超时配置方面的应用。 考虑为可取消的操作实现中止令牌

常见的故障排除技巧有哪些?

为什么Windows系统上的OCR功能无法正常工作?

常见的安装问题包括 Windows 系统缺少Visual C++ 可再发行组件包。 IronOCR 需要 2019 版本。 有关详细指导,请参阅Visual C++ Redistributable 故障排除指南。 对于 Linux 部署,请确保已安装 libgdiplus 。 如果文本识别效果不佳,请使用DPI 设置指南验证您的图像是否至少为 200 DPI。 C# OCR 社区在Stack Overflow上也为常见的 GitHub 项目问题提供了有用的解决方案。

对于具体问题,请参阅有关一般故障排除Azure Functions 部署AWS Lambda 问题或 .NET 7+ 的System.Drawing 替代方案的指南。 IronOCR实用工具可以帮助诊断配置问题。

我可以在哪里获得更多帮助?

有关详细故障排除,请查阅IronOCR 故障排除指南IronOCR 支持团队为在 GitHub 上托管 OCR 应用程序的授权用户提供快速支持。 请查看产品变更日志以获取最新更新,并查看API 参考文档以获取完整文档。

下一步是什么? IronOCR 简化了 C# GitHub 项目中的 OCR 实现,通过其直观的 API、全面的预处理和可靠的准确性。 从上面的代码示例开始,探索官方仓库,并构建利用 GitHub 协作功能的强大文档处理应用程序。 无论您是构建[MAUI 应用程序](/csharp/ocr/get-started/net-maui-ocr-tutorial/)、处理[专用文档](/csharp/ocr/tutorials/read-specific-document/),还是[用一行代码实现 OCR](/csharp/ocr/examples/simple-csharp-ocr-tesseract/) ,IronOCR 都能为您提供所需的工具。 下载[IronOCR 的免费试用版](trial-license)以进行商业部署。 探索[各种许可选项,](/csharp/ocr/licensing/)包括[扩展](/csharp/ocr/licensing/extensions/)和[升级,](/csharp/ocr/licensing/upgrades/)以满足您团队的需求。

常见问题解答

OCR C# GitHub教程的主要目的是什么?

OCR C# GitHub教程的主要目的是指导开发人员使用IronOCR在他们的GitHub项目中实现文本识别。它包括代码示例和版本控制提示。

IronOCR如何增强我在GitHub上的C#项目?

IronOCR可以通过提供强大的文本识别功能来增强您在GitHub上的C#项目,使您能够以高精度从图像中提取和操作文本。

使用IronOCR进行文本识别有哪些好处?

IronOCR在文本识别方面提供了多个好处,包括易用性、高精度和无缝集成到C#项目中,使其对于处理基于图像的文本数据的开发人员来说是一个理想的选择。

OCR C# GitHub教程中是否有代码示例可用?

是的,OCR C# GitHub教程包括代码示例,演示如何在您的项目中使用IronOCR实现文本识别。

教程中提供了哪些版本控制提示?

教程提供了版本控制提示,帮助在集成IronOCR时有效管理项目中的更改,确保顺利的协作和项目维护。

我可以将IronOCR用于实时文本识别应用吗?

是的,由于其高效的处理能力和对各种图像格式的支持,IronOCR可以用于实时文本识别应用。

IronOCR支持哪些图像格式进行文本识别?

IronOCR支持多种图像格式进行文本识别,包括JPEG、PNG、BMP、GIF和TIFF,确保与大多数图像来源兼容。

是否有可用于测试的IronOCR试用版?

是的,有一个IronOCR的试用版可用,允许开发人员在购买之前在他们的项目中测试其功能和性能。

IronOCR如何处理不同语言的文本识别?

IronOCR支持多种语言的文本识别,使开发人员能够轻松从各种语言的图像中提取文本。

在C#项目中使用IronOCR的系统要求是什么?

IronOCR兼容.NET Framework和.NET Core,并可以轻松集成到C#项目中,而无需大量的系统资源。

Kannaopat Udonpant
软件工程师
在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。